第一步:安裝及初始化
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