facilmap/server/database/database.js

54 wiersze
1.2 KiB
JavaScript
Czysty Zwykły widok Historia

2016-10-30 14:01:21 +00:00
var util = require("util");
var events = require("events");
var Sequelize = require("sequelize");
var debug = require("debug");
2016-10-30 14:01:21 +00:00
var utils = require("../utils");
class Database extends events.EventEmitter {
2017-02-22 15:25:46 +00:00
constructor(dbConfig) {
2016-10-30 14:01:21 +00:00
super();
2017-02-22 15:25:46 +00:00
this._conn = new Sequelize(dbConfig.database, dbConfig.user, dbConfig.password, {
dialect: dbConfig.type,
host: dbConfig.host,
port: dbConfig.port,
2016-10-30 14:01:21 +00:00
define: {
timestamps: false
},
logging: debug.enabled("sql") ? console.log : false
2016-10-30 14:01:21 +00:00
});
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(() => {
return this._runMigrations()
2016-10-30 14:01:21 +00:00
});
}
}
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);
2016-10-31 12:11:36 +00:00
require("./history")(Database);
require("./meta")(Database);
require("./route")(Database);
2016-10-30 14:01:21 +00:00
module.exports = Database;