This commit is contained in:
CrescentLeaf
2025-07-14 21:51:36 +08:00
parent c80fa5cd3c
commit c8c80685ec
3 changed files with 4 additions and 43 deletions

View File

@@ -5,7 +5,6 @@
"express": "npm:express@^4.21.2",
"socket.io": "npm:socket.io@^4.8.1",
// Database
"sequelize": "npm:sequelize@^6.37.7",
"sqlite3": "npm:sqlite3@^5.1.7",
// Front-end Compiling
"@babel/core": "npm:@babel/core@^7.26.10",

View File

@@ -1,10 +1,7 @@
// @ts-types="npm:sequelize"
import { Sequelize } from 'sequelize'
import Config from "../config.ts"
import User from "./User.ts";
abstract class BaseDataManager {
declare sequelize: Sequelize
declare name: string
constructor(name: string) {
this.init(name)
@@ -12,10 +9,7 @@ abstract class BaseDataManager {
}
private init(name: string) {
this.name = name
this.sequelize = new Sequelize({
dialect: 'sqlite',
storage: Config.dirs.DATABASES_DIR + '/' + name + '.db'
})
}
abstract onInit(): void
}
@@ -23,7 +17,7 @@ abstract class BaseDataManager {
class UserDataManager extends BaseDataManager {
static SINGLE_INSTANCE = new UserDataManager('users')
override onInit(): void {
User.initTable(this.sequelize, this.name)
}
}

View File

@@ -1,35 +1,3 @@
// @ts-types="npm:sequelize"
import { Sequelize, Model, DataTypes, CreationOptional } from 'sequelize'
export default class User extends Model {
declare created_id: CreationOptional<number>
declare user_name: string | null
declare nick_name: string | null
declare avatar: Blob
static async initTable(sequelize: Sequelize, name: string) {
this.init({
created_id: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
},
user_name: {
type: DataTypes.STRING,
allowNull: true,
},
nick_name: {
type: DataTypes.STRING,
allowNull: true,
},
avatar: {
type: DataTypes.BLOB,
allowNull: true,
},
}, {
sequelize: sequelize,
tableName: name,
})
await this.sync({ alter: true })
}
export default class User {
}