Last active
May 23, 2020 12:35
-
-
Save makupi/13e9d6ebde0869e7153b4547888c8cdd to your computer and use it in GitHub Desktop.
sequelize example (; = / since gists don't allow that apparently)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module.exports = { | |
development: { | |
dialect: "sqlite", | |
storage: "./db.development.sqlite" | |
}, | |
test: { | |
dialect: "sqlite", | |
storage: ":memory:" | |
}, | |
production: { | |
username: process.env.DB_USERNAME, | |
password: process.env.DB_PASSWORD, | |
database: process.env.DB_NAME, | |
host: process.env.DB_HOSTNAME, | |
dialect: 'mysql', | |
use_env_variable: 'DATABASE_URL' | |
} | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
var fs = require("fs"); | |
var path = require("path"); | |
var Sequelize = require("sequelize"); | |
var basename = path.basename(__filename); | |
var env = process.env.NODE_ENV || "development"; | |
var config = require(__dirname + "/config.js")[env]; | |
var __modelsdir = __dirname + "/models"; | |
var db = {}; | |
if (config.use_env_variable) { | |
var sequelize = new Sequelize(process.env[config.use_env_variable], config); | |
} else { | |
var sequelize = new Sequelize( | |
config.database, | |
config.username, | |
config.password, | |
config | |
); | |
} | |
fs.readdirSync(__modelsdir) | |
.filter((file) => { | |
return file.indexOf(".") !== 0 && file.slice(-3) === ".js"; | |
}) | |
.forEach((file) => { | |
var model = sequelize["import"](path.join(__modelsdir, file)); | |
db[model.name] = model; | |
}); | |
Object.keys(db).forEach((modelName) => { | |
if (db[modelName].associate) { | |
db[modelName].associate(db); | |
} | |
}); | |
db.sequelize = sequelize; | |
db.Sequelize = Sequelize; | |
module.exports = db; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
module.exports = (sequelize, DataTypes) => { | |
let Character = sequelize.define("Character", { | |
name: DataTypes.STRING, | |
race: DataTypes.STRING, | |
gender: DataTypes.STRING, | |
}); | |
return Character; | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var db = require("./database"); | |
db.sequelize.sync().then(() => { | |
// CREATE | |
db.Character.create({ | |
name: "TestName" + Math.floor(Math.random() * 1000), | |
race: "TestRace", | |
gender: "male", | |
}).then(() => { | |
console.log("Character created"); | |
}); | |
// FIND ALL | |
db.Character.findAll().then((characters) => { | |
characters.forEach((character) => { | |
console.log(character.name); | |
// UPDATE | |
character.name += "updated?"; | |
character.save(); | |
}); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment