我不确定这是否是一个错误,或者这是否真的删除了一个 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
我意识到我可能不应该将向上箭头用于像 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 添加到单词 migration(或 DESTROY 之后的任何单词)。好像有点危险……
不管怎样 - 我很想知道我是否已经以某种方式破坏了我的 RAILS 环境(rails 3.1,ruby 1.8.7),因为已删除了 migration.rb 文件。如果是这样 - 我有什么解决这种情况的选择?
提前谢谢了...