facilmap/server/database/database.js

53 wiersze
1.1 KiB
JavaScript

var util = require("util");
var events = require("events");
var Sequelize = require("sequelize");
var debug = require("debug");
var utils = require("../utils");
var config = require("../../config");
class Database extends events.EventEmitter {
constructor() {
super();
this._conn = new Sequelize(config.db.database, config.db.user, config.db.password, {
dialect: config.db.type,
host: config.db.host,
port: config.db.port,
define: {
timestamps: false
},
logging: debug.enabled("sql") ? console.log : false
});
for(let func of this._init)
func.call(this);
for(let func of this._afterInit)
func.call(this);
}
connect(force) {
return this._conn.authenticate().then(() => {
return this._conn.sync({ force: !!force });
}).then(() => {
this._runMigrations()
});
}
}
Database.prototype._init = [ ];
Database.prototype._afterInit = [ ];
require("./migrations")(Database);
require("./helpers")(Database);
require("./pad")(Database);
require("./marker")(Database);
require("./line")(Database);
require("./view")(Database);
require("./type")(Database);
require("./history")(Database);
module.exports = Database;