[Node.js] Sequelize 小常識 (不定時更新這篇)
一般使用 sequelize-cli 前, 必須先執行下列指令做初始化
要建立model:
如果需要預設語系是utf8mb4
需要自己修改套件
之後下 sequelize db:create 就會直接是 utf8mb4 的語系囉
要像 Laravel 這樣可以去addColumn怎使用?
ref: https://stackoverflow.com/questions/46357533/how-to-add-delete-new-columns-in-sequelize-cli
https://sequelize.readthedocs.io/en/latest/docs/migrations/
sequelize init --force
要建立model:
sequelize model:generate --name User --attributes name:string,nickname:string,age:integer
# 會自動產生 createdAt 與 updateAt 的欄位
# 如果是想要產生 created_at, updated_at 的欄位的話
# 可以加入 --underscored 這個參數
sequelize model:generate --name User --attributes name:string,nickname:string,age:integer --underscored
如果需要預設語系是utf8mb4
需要自己修改套件
vim /usr/local/lib/node_modules/sequelize-cli/lib/commands/database.js
# 莫約第38行
# `` 為es6 的 string template 的功能, 超實用
`CREATE DATABASE ${sequelize.getQueryInterface().quoteIdentifier(config.database)} DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_general_ci`
之後下 sequelize db:create 就會直接是 utf8mb4 的語系囉
要像 Laravel 這樣可以去addColumn怎使用?
ref: https://stackoverflow.com/questions/46357533/how-to-add-delete-new-columns-in-sequelize-cli
https://sequelize.readthedocs.io/en/latest/docs/migrations/
// 使用此指令建立 migration
sequelize migration:create --name name_of_your_migration
// 產生範例如下
module.exports = {
up: function(queryInterface, Sequelize) {
// logic for transforming into the new state
return queryInterface.addColumn(
'Todo', // table name
'completed', // column name
{
type: Sequelize.BOOLEAN, // column type,
after: 'specific_column', // 指定在某個欄位後
//before: 'specific_column' // 指定在某個欄位前
);
},
down: function(queryInterface, Sequelize) {
// logic for reverting the changes
return queryInterface.removeColumn(
'Todo',
'completed'
);
}
}
留言
張貼留言