在 Rails 下,紀錄著 database 中全部 tables 的 config/schema.rb 是由 config/migrate/ 下的 migration 所產生的,每當 rake db:migrate 時,rails 會對照 schema 的版本以及 migration 的最新版本,當有新的 migration 時,rails 會重新生成 schema。
因此,如果需要修改 table,必需透過 migration,如同上述,每次的 migration 都會生成新的 schema 蓋掉原本的,因此直接修改 schema 是沒有用的。
當要退回 database 的版本時,可以使用 rollback 來回復:
$ rake db:rollback STEP=n
這代表退回前 n 次的版本,後面不加 step 的話預設是 1,也就是退回到前一個版本。
若要退到指定版本:
$ rake db:migrate:down VERSION=<version_number>
( VERSION 要大寫 )
查看版本的方法:
$ rake db:version
Reference:
http://ihower.tw/rails3/migrations.html
http://lee2013.iteye.com/blog/1146697
因此,如果需要修改 table,必需透過 migration,如同上述,每次的 migration 都會生成新的 schema 蓋掉原本的,因此直接修改 schema 是沒有用的。
當要退回 database 的版本時,可以使用 rollback 來回復:
$ rake db:rollback STEP=n
這代表退回前 n 次的版本,後面不加 step 的話預設是 1,也就是退回到前一個版本。
若要退到指定版本:
$ rake db:migrate:down VERSION=<version_number>
( VERSION 要大寫 )
查看版本的方法:
$ rake db:version
Reference:
http://ihower.tw/rails3/migrations.html
http://lee2013.iteye.com/blog/1146697
留言
張貼留言