0. 初始化項目
$ npm init
1. 安裝 sequelize-cli
$ npm install --save sequelize-cli sequelize mysql2
注意:sequelize-cli
是要依賴於 sequelize
和 mysql2
的。
2. 生成 sequelize
目錄
$ node_modules/.bin/sequelize init
執行上面命令,會生成以下幾個文件夾:
-
config
:包含一個config.json
文件 -
models
:包含一個index.js
文件 -
migrations
:空文件夾 -
seeders
:空文件夾
3. 配置連接數據庫的信息
將 config/config.json
文件裏的信息修改爲本機數據庫的信息:
{
"development": {
"username": "root",
"password": "123456",
"database": "database_development",
"host": "127.0.0.1",
"dialect": "mysql"
},
"test": {
"username": "root",
"password": "123456",
"database": "database_test",
"host": "127.0.0.1",
"dialect": "mysql"
},
"production": {
"username": "root",
"password": "123456",
"database": "database_production",
"host": "127.0.0.1",
"dialect": "mysql"
}
}
注意:password
字段是字符串類型,切勿設置爲數字類型。
4. 創建數據庫
$ node_modules/.bin/sequelize db:create
執行上面命令,會一句 config/config.json
文件所配置的創建 database_development
數據庫。
5. 生成模型文件和遷移文件
$ node_modules/.bin/sequelize model:generate --name User --attributes firstName:string,lastName:string,email:string
執行上面命令會:
- 在
models
文件夾裏生成一個user.js
文件 - 在
migrations
文件夾裏生成一個20190210132709-create-user.js
文件
注意:這裏,我把 20190210132709-create-user.js
文件裏的 createdAt
和 updatedAt
兩個字段中的 allowNull
改成了 true
,避免在後面的執行種子文件操作中報錯。
6. 執行遷移
$ node_modules/.bin/sequelize db:migrate
執行上面命令,會在 database_development
數據庫中創建 sequelizemeta
表和 users
表。
users
表裏面長這樣:
7. 生成種子文件
$ node_modules/.bin/sequelize seed:generate --name demo-user
執行上面命令,會在 seeders
文件夾裏生成一個 20190210132832-demo-user.js
文件,然後我們將該文件修改成以下這樣:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.bulkInsert('Users', [{
firstName: 'John',
lastName: 'Doe',
email: '[email protected]'
}], {});
},
down: (queryInterface, Sequelize) => {
return queryInterface.bulkDelete('Users', null, {});
}
};
8. 執行種子文件
$ node_modules/.bin/sequelize db:seed:all
執行上面命令,會在 database_development
數據庫的 users
表中插入一條數據。
9. 總結
至此,我們成功使用 sequelize-cli 創建數據庫和表,並插入默認數據了。更多詳細信息,請參閱 這裏。