Files
node_learning_module_1/day1/models/index.js
T

64 lines
1.5 KiB
JavaScript
Raw Normal View History

"use strict";
2022-02-06 20:17:46 -05:00
/*Powered By: Manaknightdigital Inc. https://manaknightdigital.com/ Year: 2020*/
/**
* Sequelize File
* @copyright 2020 Manaknightdigital Inc.
* @link https://manaknightdigital.com
* @license Proprietary Software licensing
* @author Ryan Wong
*
*/
const fs = require("fs");
const path = require("path");
let Sequelize = require("sequelize");
2022-02-06 20:17:46 -05:00
const basename = path.basename(__filename);
const { DataTypes } = require("sequelize");
2022-02-06 20:17:46 -05:00
let db = {};
// SQLite configuration - stores data in a file instead of MySQL server
let sequelize = new Sequelize({
dialect: "sqlite",
storage: "./database.sqlite", // Database file location
logging: console.log,
define: {
timestamps: false,
underscoredAll: true,
underscored: true,
},
2022-02-06 20:17:46 -05:00
});
// Sync database tables
sequelize
.sync({ alter: true })
.then(() => {
console.log("Database tables synchronized");
})
.catch((err) => {
console.error("Error synchronizing database:", err);
});
2022-02-06 20:17:46 -05:00
fs.readdirSync(__dirname)
.filter((file) => {
return (
file.indexOf(".") !== 0 &&
file !== basename &&
file.slice(-3) === ".js"
);
})
.forEach((file) => {
var model = require(path.join(__dirname, file))(sequelize, DataTypes);
db[model.name] = model;
});
2022-02-06 20:17:46 -05:00
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
2022-02-06 20:17:46 -05:00
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;