第一步:安装及初始化
npm i sequelize-cli -D
npm i sequelize
npm i mysql2
在node_modules父级目录下执行node_modules/.bin/sequelize init
初始化后会生成config.js
const { env } = process;
module.exports = {
"development": {
"username": env.MYSQL_USERNAME,
"password": env.MYSQL_PASSWORD,
"database": env.MYSQL_DB_NAME,
"host": env.MYSQL_HOST,
"port": env.MYSQL_PORT,
"dialect": "mysql",
"operatorsAliases": false, // 此参数为自行追加,解决高版本 sequelize 连接警告
},
"production": {
"username": env.MYSQL_USERNAME,
"password": env.MYSQL_PASSWORD,
"database": env.MYSQL_DB_NAME,
"host": env.MYSQL_HOST,
"port": env.MYSQL_PORT,
"dialect": "mysql",
"operatorsAliases": false, // 此参数为自行追加,解决高版本 sequelize 连接警告
}
}
可以在环境变量配置对应的敏感数据。
在models目录下会有一个index.js文件生成,该文件功能是通过fs来读取models下所有.js文件集成为一个对象。
第二步:创建数据库 终端输入 node_modules/.bin/sequelize db:create
第三步:创建迁移文件 node_modules/.bin/sequelize migration:create --name create-shops-table
修改文件内容
module.exports = {
up: (queryInterface, Sequelize) => queryInterface.createTable(
'shops',
{
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true,
},
name: {
type: Sequelize.STRING,
allowNull: false,
},
thumb_url: Sequelize.STRING,
created_at: Sequelize.DATE,
updated_at: Sequelize.DATE,
},
),
down: queryInterface => queryInterface.dropTable('shops'),
};
创建一个记录数据库迁移记录的表
node_modules/.bin/sequelize db:migrate
回退表状态,进行down操作
node_modules/.bin/sequelize db:migrate:undo
回退所有表达初始状态
node_modules/.bin/sequelize db:migrate:undo:all
数据填充操作
node_modules/.bin/sequelize seed:create --name init-shops
在文件里填充好数据,填充到表中
输入 node_modules/.bin/sequelize db:seed:all