65 lines
1.2 KiB
JavaScript
65 lines
1.2 KiB
JavaScript
const Sequelize = require('sequelize');
|
|
|
|
const seqConn = new Sequelize({
|
|
dialect: 'sqlite',
|
|
storage: process.env.DB_STORAGE,
|
|
pool: {
|
|
max: 5,
|
|
min: 0,
|
|
acquire: 30000,
|
|
idle: 10000,
|
|
},
|
|
logging: console.log,
|
|
});
|
|
|
|
////// Sessions, Users //////
|
|
// Sessions
|
|
const Session = seqConn.define('Session', {
|
|
sid: {
|
|
type: Sequelize.TEXT,
|
|
primaryKey: true
|
|
},
|
|
data: Sequelize.TEXT,
|
|
expires: Sequelize.DATE,
|
|
});
|
|
|
|
// User
|
|
const User = seqConn.define('User', {
|
|
username: {
|
|
type: Sequelize.TEXT,
|
|
unique: true,
|
|
allowNull: false,
|
|
},
|
|
password: {
|
|
type: Sequelize.TEXT,
|
|
allowNull: false
|
|
},
|
|
power: {
|
|
type: Sequelize.SMALLINT,
|
|
allowNull: false,
|
|
defaultValue: 0
|
|
}
|
|
});
|
|
|
|
// RegisteredDomain
|
|
const RegisteredDomain = seqConn.define('RegisteredDomain', {
|
|
domain: {
|
|
type: Sequelize.TEXT,
|
|
unique: true,
|
|
allowNull: false
|
|
},
|
|
owner: {
|
|
type: Sequelize.BIGINT.UNSIGNED,
|
|
allowNull: false
|
|
}
|
|
});
|
|
|
|
////// Exports //////
|
|
module.exports = {
|
|
db: seqConn,
|
|
models: {
|
|
Session,
|
|
User,
|
|
RegisteredDomain
|
|
}
|
|
} |