mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-23 19:00:32 +03:00
61dabbb7da
# Conflicts: # README.md # docker/.env.example # packages/components/nodes/documentloaders/Notion/NotionDB.ts # packages/components/nodes/memory/DynamoDb/DynamoDb.ts # packages/components/nodes/memory/MotorheadMemory/MotorheadMemory.ts # packages/components/nodes/memory/ZepMemory/ZepMemory.ts # packages/components/package.json # packages/components/src/utils.ts # packages/server/.env.example # packages/server/README.md # packages/server/marketplaces/chatflows/Conversational Retrieval QA Chain.json # packages/server/src/ChildProcess.ts # packages/server/src/DataSource.ts # packages/server/src/commands/start.ts # packages/server/src/index.ts # packages/server/src/utils/index.ts # packages/server/src/utils/logger.ts
72 lines
2.6 KiB
TypeScript
72 lines
2.6 KiB
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> => {
|
|
let homePath
|
|
const synchronize = process.env.OVERRIDE_DATABASE === 'false' ? false : true
|
|
switch (process.env.DATABASE_TYPE) {
|
|
case 'sqlite':
|
|
homePath = process.env.DATABASE_PATH ?? path.join(getUserHome(), '.flowise')
|
|
appDataSource = new DataSource({
|
|
type: 'sqlite',
|
|
database: path.resolve(homePath, 'database.sqlite'),
|
|
synchronize,
|
|
entities: [ChatFlow, ChatMessage, Tool, Credential],
|
|
migrations: []
|
|
})
|
|
break
|
|
case 'mysql':
|
|
appDataSource = new DataSource({
|
|
type: 'mysql',
|
|
host: process.env.DATABASE_HOST,
|
|
port: parseInt(process.env.DATABASE_PORT || '3306'),
|
|
username: process.env.DATABASE_USER,
|
|
password: process.env.DATABASE_PASSWORD,
|
|
database: process.env.DATABASE_NAME,
|
|
charset: 'utf8mb4',
|
|
synchronize,
|
|
entities: [ChatFlow, ChatMessage, Tool, Credential],
|
|
migrations: []
|
|
})
|
|
break
|
|
case 'postgres':
|
|
appDataSource = new DataSource({
|
|
type: 'postgres',
|
|
host: process.env.DATABASE_HOST,
|
|
port: parseInt(process.env.DATABASE_PORT || '5432'),
|
|
username: process.env.DATABASE_USER,
|
|
password: process.env.DATABASE_PASSWORD,
|
|
database: process.env.DATABASE_NAME,
|
|
synchronize,
|
|
entities: [ChatFlow, ChatMessage, Tool, Credential],
|
|
migrations: []
|
|
})
|
|
break
|
|
default:
|
|
homePath = process.env.DATABASE_PATH ?? path.join(getUserHome(), '.flowise')
|
|
appDataSource = new DataSource({
|
|
type: 'sqlite',
|
|
database: path.resolve(homePath, 'database.sqlite'),
|
|
synchronize,
|
|
entities: [ChatFlow, ChatMessage, Tool, Credential],
|
|
migrations: []
|
|
})
|
|
break
|
|
}
|
|
}
|
|
|
|
export function getDataSource(): DataSource {
|
|
if (appDataSource === undefined) {
|
|
init()
|
|
}
|
|
return appDataSource
|
|
}
|