删除了migration.rb文件? 轨道中的潜在错误?
我不确定这是否是一个错误,或者如果这实际上删除了migration.rb文件。 我使用generate来创建以下迁移:
$ rails generate migration add_delta_to_submissions
invoke active_record
create db/migrate/20111020175649_add_delta_to_submissions.rb
然后我意识到我忽略了包括任何列,所以我在控制台中使用了向上箭头,并使用摧毁来覆盖生成:
$ rails destroy migration add_delta_to_submissions
invoke active_record
remove db/migrate/20111020175649_add_delta_to_submissions.rb
到目前为止,所有这一切都很好,现在是时候用我需要的列来运行迁移。 这里是问题出现的地方 - 我再次使用向上箭头 - 但只有一次 - 并添加了我的列信息:
$ rails destroy migration add_delta_to_submissions delta:integer
invoke active_record
remove migration.rb
我意识到我可能不应该使用UP ARROW作为像GENERATE和DESTROY这样的易失性命令(学到的东西!),但是该命令回来说明它已经删除了migration.rb文件。 我甚至不知道有一个migration.rb文件 - 尤其是没有那么容易删除的文件。
对于踢腿,我决定尝试通过在字移动结尾添加字母x来欺骗命令控制台 - 并收到以下消息:
$ rails destroy migrationx add_delta_to_submissions delta:integer
Could not find generator migrationx.
所以,我认为rails destroy命令可能存在一个错误。 一旦它意识到不再有一个add_delta_to_submissions.rb文件,它只是将此关闭并将.rb添加到单词迁移(或DESTROY之后的任何单词)。 这似乎有点危险....
无论如何 - 我很想知道现在是否已经移除了migration.rb文件,是否已经损害了我的RAILS环境(rails 3.1,ruby 1.8.7)。 如果是这样 - 我有哪些选择来解决这种情况?
提前谢谢了...
当您键入不存在的迁移名称作为参数来销毁命令时也会发生这种情况
$rails migration destroy non-existing-migration-name
invoke active_record
remove migration.rb
但我认为这是无害的。
你的系统上有git吗? 今天发生了同样的事情,我跑了:
git diff | grep migration
我的系统没有出现。 我搜索了这个文件,并且在我的任何一个Rails 3.1项目中仍然找不到任何migration.rb文件。 大概可以忽略它没有任何伤害?
同样的事情发生在我身上。
看起来在ActiveRecord中有一个migration.rb文件,尽管你可以扩展ActiveRecord :: Base,但我不确定你实际上是否可以从rails项目目录的某个地方访问这些文件。
看起来像是有一些手动删除迁移文件的先例,而不是通过自动导轨销毁命令。
链接地址: http://www.djcxy.com/p/9771.html上一篇: Deleted migration.rb file? Potential bug in rails?
下一篇: Displaying AVPlayer content on two views simultaneously