【问题标题】:deleted migration file keeps coming back Rails 3已删除的迁移文件不断返回 Rails 3
【发布时间】:2011-10-02 11:20:06
【问题描述】:

我有 2 个版本的相同迁移(我知道这是个坏习惯)。我多次删除旧版本,但在重新启动我的项目(或对其进行某些操作,如 rake db:test:prepare)后,该文件出现在我的 migrate 文件夹中。当我运行 rake db:migrate 时,它​​会抱怨同名的多个迁移。

如何彻底删除迁移文件?是否有我需要删除的注册表以防止它再次出现?

【问题讨论】:

  • 您使用什么源代码控制?听起来更像是恢复文件而不是 rails 所做的任何事情。
  • 我正在使用 Git。我将这些删除添加到我的提交中,但它们不断回来。

标签: ruby-on-rails git version-control migration


【解决方案1】:

您是从 repo 更新吗?我看不出如何恢复原始文件。

您还可以从 schema_migration 表中删除该条目,但这只会跟踪它是否已运行 (IIRC)。

【讨论】:

  • 我很确定我将删除文件添加到我的提交中。多次提交后,仍然会弹出相同的问题。我还检查了 db 文件夹中的 schema.rb,但它只保留最新更新,不显示旧更新。
  • 文件是否出现在 repo 中?您在 Rails 中执行的任何操作都不会重新创建迁移文件 (AFAIK)。
  • 嗨,戴夫,我刚刚再次删除了文件。如何确定文件是否出现在过去的提交或分支中?
  • 什么SCCS?您确定要提交已删除的文件吗?此外,如果有两个同名文件(也不确定您的意思),似乎很容易混淆。
  • 我有 XXX_create_my_table(旧版本)和 YYY_create_my_table(新版本)。感谢您的跟进。我会尝试 jimworm 的建议。
【解决方案2】:

git add 仅添加新的和更改的文件,不会删除已删除的文件。删除:

git rm db/migrate/<filename>

或者如果您已经从文件系统中删除了它:

git add -u

【讨论】:

  • @AdamNYC 好吧,这就是为什么我问你是否提交了删除:p
  • 过来偷了工作人员的答案。 =)
  • 谢谢大家。你们俩都非常乐于助人和友善:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 2015-08-08
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
相关资源
最近更新 更多