ketr.photos/server/db/index.js
James Ketrenos 2c427707fa Added some DB creation, scanning, and fetching
Signed-off-by: James Ketrenos <james_git@ketrenos.com>
2018-01-16 17:17:50 -08:00

52 lines
1.4 KiB
JavaScript

/**
* * Copyright (c) 2016, Intel Corporation.
*
* This program is licensed under the terms and conditions of the
* Apache License, version 2.0. The full text of the Apache License is at
* http://www.apache.org/licenses/LICENSE-2.0
*/
"use strict";
/**
* This class will instantiate the ORM, load in the models, call the method
* to create db connections, test the connection, then create the tables and
* relationships if not present
*/
const fs = require('fs'),
path = require('path'),
Sequelize = require('sequelize'),
config = require('config');
function init() {
const db = {
sequelize: new Sequelize(config.get("db.host"), config.get("db.options")),
Sequelize: Sequelize
};
console.log("DB initialization beginning. DB access will block.");
return db.sequelize.authenticate().then(function () {
const Photo = db.sequelize.define('photo', {
path: Sequelize.STRING,
filename: Sequelize.STRING,
added: Sequelize.DATE
});
console.log("Connection established successfully with DB.");
return db.sequelize.sync({
force: false
}).then(function () {
console.log("DB relationships successfully mapped. DB access unblocked.");
return db;
});
}).catch(function (error) {
console.log("ERROR: Failed to authenticate with DB");
console.log("ERROR: " + JSON.stringify(config.get("db"), null, 2));
console.log(error);
return reject(error);
});
}
module.exports = init();