遇到 migration 進退兩難
在 localhost 或者 staging 已经部属完 migration
而當前处在错误的版本,爾後又继续建立 migrate file,中間存在很多的 migration versions
导致最後沒辦法前進 rake db:migrate
,也沒辦法後退 rollback:migrate
解决前提:
本地数据或者远端 staging 数据记录都可以舍弃下,登入 postgres
解决方法,三步骤
1 | psql -l // 确认哪一个 database name |
第一,先删除该 table 或者 column
假設你遇到輸入指令没回,檢查指令结尾是否忘記加上 ;
1 | //如果只是改栏位,删除该 column即可 |
第二,再移除该版本号
1 | select from schema_migrations where version='20190318034745'; |
第三,检查 rake db:migrate:status 确认都是 up,就可以执行 rake db:migrate
补充可以在 postgres console 里面输出,當前 schema_migrations 的版本
使用以下指令:
1 | select * from schema_migrations order by version desc limit 10; |