30 lines
852 B
TypeScript
30 lines
852 B
TypeScript
import 'reflect-metadata'
|
|
import path from 'path'
|
|
import { DataSource } from 'typeorm'
|
|
import { ChatFlow } from './entity/ChatFlow'
|
|
import { ChatMessage } from './entity/ChatMessage'
|
|
import { Credential } from './entity/Credential'
|
|
import { Tool } from './entity/Tool'
|
|
import { getUserHome } from './utils'
|
|
|
|
let appDataSource: DataSource
|
|
|
|
export const init = async (): Promise<void> => {
|
|
const homePath = process.env.DATABASE_PATH ?? path.join(getUserHome(), '.flowise')
|
|
|
|
appDataSource = new DataSource({
|
|
type: 'sqlite',
|
|
database: path.resolve(homePath, 'database.sqlite'),
|
|
synchronize: true,
|
|
entities: [ChatFlow, ChatMessage, Tool, Credential],
|
|
migrations: []
|
|
})
|
|
}
|
|
|
|
export function getDataSource(): DataSource {
|
|
if (appDataSource === undefined) {
|
|
init()
|
|
}
|
|
return appDataSource
|
|
}
|