數(shù)據(jù)庫遷移方案 node-db-migrate

  1. 安裝必要的庫,這里使用的是mysql的遷移,所以除了db-migrate還需要db-migrate-mysql

npm install -g db-migrate
npm install db-migrate-mysql

2.寫配置文件,比如在ocnfigs文件夾下面寫一個(gè)文件:database_migrate.json

{
    "dev": {
        "host": "localhost",
        "user": "your username",
        "password" :  "your password" ,
        "database": "your db",
        "driver": "mysql",
        "multipleStatements": true
    }
}

3.生成sql遷移文件

 db-migrate create  add-department  --config configs/database_migrate.json  --sql-file ```
(把a(bǔ)dd-department換成你想要的名字)

此時(shí)會(huì)在你的工程中生成幾個(gè)文件

![image.png](http://upload-images.jianshu.io/upload_images/3523277-43772679ec89e886.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

4.在 .....up.sql文件中寫sql語句,比如你想增加一個(gè)字段:

alter table departments add column mobile VARCHAR(32) after leader;


在...down.sql中寫回滾語句,此處略過

5.執(zhí)行數(shù)據(jù)庫遷移:
db-migrate up --config configs/database_migrate.json

6.執(zhí)行回滾(如果需要)
db-migrate down --config configs/database_migrate.json

**注意點(diǎn)**

如果執(zhí)行過了遷移之后又用sql文件導(dǎo)入了數(shù)據(jù),但是數(shù)據(jù)是老的數(shù)據(jù),比如有些字段是沒有,而你又想再執(zhí)行一下數(shù)據(jù)庫遷移,這時(shí)候你會(huì)發(fā)現(xiàn)提示你沒有可以遷移的了,這個(gè)是怎么回事呢?因?yàn)榈谝淮芜w移會(huì)在數(shù)據(jù)庫建一個(gè)表migrations,記錄下作了哪些遷移,如果你想再次執(zhí)行的話就要把那條記錄刪掉,同理,你想跳過某個(gè)sql文件的執(zhí)行,只需要手動(dòng)把它加入到migratinon表中即可。

參考:
http://db-migrate.readthedocs.io/en/latest/Getting%20Started/usage/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容