@@ -1,12 +1,17 @@
|
||||
import { database } from '@ccms/api'
|
||||
import { provideSingleton } from '@ccms/container'
|
||||
import { DataBase, DataBaseConfig } from './database'
|
||||
import { DataBase } from './database'
|
||||
|
||||
@provideSingleton(database.DataBaseManager)
|
||||
export class DataBaseManager {
|
||||
export class DataBaseManager extends database.DataBaseManager {
|
||||
private mainDatabase: DataBase
|
||||
private databases = new Map<string, DataBase>()
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
process.on('exit', () => this.disable())
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置主数据库
|
||||
* @param mainDatabase 主数据库
|
||||
@@ -29,8 +34,8 @@ export class DataBaseManager {
|
||||
* @param name 数据库名称 用于代码 database Name use at code
|
||||
* @param config 数据库配置
|
||||
*/
|
||||
createDatabase(name: string, config: DataBaseConfig) {
|
||||
Java.synchronized(() => {
|
||||
createDatabase(name: string, config: database.DataBaseConfig) {
|
||||
return Java.synchronized(() => {
|
||||
if (!this.databases.has(name)) {
|
||||
this.databases.set(name, new DataBase(config))
|
||||
}
|
||||
@@ -38,6 +43,13 @@ export class DataBaseManager {
|
||||
}, this.databases)()
|
||||
}
|
||||
|
||||
removeDatabase(name: string) {
|
||||
if (this.databases.has(name)) {
|
||||
this.databases.get(name).close()
|
||||
}
|
||||
return this.databases.delete(name)
|
||||
}
|
||||
|
||||
getDatabase(name: string) {
|
||||
return this.databases.get(name)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user