我制作了一个Ruby on Rails应用程序,我在github上传了代码。回购可见:
BrainStorm-Quiz-Website-Engine
当我处理文件时,我错误地添加了一个名为levels的数据库,但后来我删除了它(右键单击它并点击删除,事后看来这是一种愚蠢的方式)然后推送一个提交
但是现在当我克隆回购时我得到了错误
rake aborted!Multiple migrations have the name CreateLevels
如何从我的github存储库中删除这些多次迁移,以便在运行rake db:migrate
时没有人收到此错误
答案 0 :(得分:1)
现在,您have three migrations调用了' create_levels',所有这些都试图创建一个'等级'表。要解决此问题,您需要删除文件,并从Git中删除它们。
首先,请确保您使用最新,干净的git分支:
rohit@foo BrainStorm $ git fetch
rohit@foo BrainStorm $ git status
On branch master
Nothing to commit, working directory clean
那是你想看到的。如果它告诉您前进/后退origin/master
,请执行git push
或git pull
。
一旦您进入干净的git存储库,就可以从项目中删除两个迁移。我推测你想要保留最新版本。您还必须告诉Git您要删除文件。您可以使用git rm
一次执行这两项任务:
rohit@foo BrainStorm $ git rm db/migrate/db/migrate/20140123085020_create_levels.rb
rohit@foo BrainStorm $ git rm db/migrate/20140130045634_create_levels.rb
现在您可以提交删除,并将其推送到您的仓库:
rohit@foo BrainStorm $ git commit -m "Remove duplicate migrations for creating a levels table."
rohit@foo BrainStorm $ git push
现在您应该可以检查该存储库并运行rake db:migrate
而不会出现问题。