- 安装必要的库,这里使用的是mysql的迁移,所以除了db-migrate还需要db-migrate-mysql
npm install -g db-migrate
npm install db-migrate-mysql
2.写配置文件,比如在ocnfigs文件夹下面写一个文件: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 ```
(把add-department换成你想要的名字)
此时会在你的工程中生成几个文件
![image.png](http://upload-images.jianshu.io/upload_images/3523277-43772679ec89e886.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4.在 .....up.sql文件中写sql语句,比如你想增加一个字段:
alter table departments add column mobile VARCHAR(32) after leader;
在...down.sql中写回滚语句,此处略过
5.执行数据库迁移:
db-migrate up --config configs/database_migrate.json
6.执行回滚(如果需要)
db-migrate down --config configs/database_migrate.json
**注意点**
如果执行过了迁移之后又用sql文件导入了数据,但是数据是老的数据,比如有些字段是没有,而你又想再执行一下数据库迁移,这时候你会发现提示你没有可以迁移的了,这个是怎么回事呢?因为第一次迁移会在数据库建一个表migrations,记录下作了哪些迁移,如果你想再次执行的话就要把那条记录删掉,同理,你想跳过某个sql文件的执行,只需要手动把它加入到migratinon表中即可。
参考:
http://db-migrate.readthedocs.io/en/latest/Getting%20Started/usage/