nodejs db mirgationej
npm init
enter 到底
安裝 db-migrate
npm install db-migrate
於node_modules/db-migrate/bin 增加一隻檔案 database.json
裡面填寫db連線相關資料
mysql
{
"dev": {
"driver": "mysql",
"user": "",
"password": "",
"host": "",
"database": "",
"multipleStatements": true
}
}
將命令提示字元(CMD) 開到node_modules/db-migrate/bin
db-migrate db:create hello
會出現
[ERROR] AssertionError [ERR_ASSERTION]: ifError got unwanted exception: No such driver found, please try to install it via npm install db-migrate-mysql or npm install -g db-migrate-mysql
於是就在裝
npm install db-migrate-mysql
在一次create hello
[INFO] Created database "hello"
連到db 就可以看到新開了一個hello 的db了
新增一個migrate
db-migrate create test
就可以看到目前所在的資料夾多了一個migrations的資料夾 裡面會有一個日期加上名稱的js
那就是migrate的腳本了 點開後
注意兩個地方
exports.up = function (db) {
return db.createTable("newtable", {
id: { type: "int", primaryKey: true },
name: "string",
});
};
exports.down = function (db) {
return db.dropTable("newtable");
};
將return 後面都換成相關的 這樣就你的migrate 寫好了
up
db-migrate up
預設會將全部跑起來 可以指定跑幾個或是檔名
db-migrate up -c 5 // 這樣就是跑最近的五個
db-migrate up 20150207135259-myFancyMigration // 這樣就是跑檔名
down
db-migrate down
預設只會down一個回去
可以指定跑幾個
db-migrate down -c 5 // 這樣就是跑最近的五個
reset
db-migrate reset
reset
參考