保华的Rails学习笔记

增加栏位时没添加add_column就rake db:migrate的解决办法

当增加一个栏位时,忘记了在新产生的文件中执行add_column时,执行了rake db:migrate时,会发现执行rake db:migrate时,执行结果为空的
这时候执行多次rake db:migrate都没结果,在schema.rb文件中,都没有产生新的栏位
解决办法是:
在终端执行 rake db:rollback,然后执行rake db:migrate

还有另外一种方法是使用rails d....
例如你执行的是rails g migration add_bbb_id_to_group
这时候发现没有rake db:migrate成功,就可以执行rails d migration add_bbb_id_to_group
然后再重新执行 rails g migration add_bbb_id_to_group,最后执行rake db:migrate

第三个方法就是直接改db/migrate下边的那个没有migrate成功的文件名(注意,不能个性后边的字母,只能修改前边的数字,一般把最后一位数字改一下就可以了),修改以后,确保里边有内容,然后 rake db:migrate就可以了

第四种方法就是直接右键点击删除这个db/migrate文件,然后重新rails g migration

总结:当空的db/migrate文件被rake db:migrate以后,在db/schema.rb文件中,最新的版本就是这个空的migrate文件,这时如果再执行rake db:migrate,是不会有结果的,因为最新的数据库变动已经migrate进去了,这时候,或者改这个migrate的文件名,重新migrate,或者直接rails d掉这个文件,重新执行rails g migration,或者执行rake db:rollback