我创建了一个模型Upload
,后来将其重命名为UploadFile
。
然后在名称"Upload"
上创建了一个新模型
现在,"CreateUpload"
控制台出错:
ActiveRecord::DuplicateMigrationNameError: Multiple migrations have the name CreateUpload
如何解决这个问题?
答案 0 :(得分:3)
删除 create_upload.rb
文件夹中已存在的 db/migrate
,然后重新生成该模型。
这应解决问题。
答案 1 :(得分:1)
您可以直接从 db / migrate / XXXX_duplicate_file_name.rb 中删除重复的迁移文件。 然后再次运行rake db:migrate命令。这很好用! 它对我有用!
答案 2 :(得分:0)
为了解决这个问题:
答案 3 :(得分:0)
如果您打算再次从头开始运行所有迁移,并且有依赖于现有创建表的连续迁移,那么可接受的答案将中断您的迁移。如果删除原始迁移,则任何相关的连续迁移现在都将失败。我认为this answer更好,并且不会破坏整个迁移链。
就我而言,我的迁移顺序是:
像OP一样,我也遇到重复名称的问题,因此从步骤1中删除了迁移。但是,当我从头开始运行迁移(我从MySQL更改为Postgresql)时,它失败了,因为现在第2步正在引用一个不存在的表。最后,我不得不手动重新创建已删除的迁移(具有适当的时间戳),并在链接的问题中使用该技术,以使一切从头到尾都能顺利运行。