rake db:migrate不执行任何操作,即使在重置时也是如此

时间:2015-01-06 19:46:46

标签: ruby-on-rails rake rails-migrations

这是我在新计算机设置上遇到的一个非常奇怪的问题(否则,它正在我的其他设置上工作)。

我在跑步:rake db:migrate
没有错误,但它什么也没做......

rake db:migrate:status向我展示了pendings迁移列表(标记为“down”),我在bd / migrate文件夹中实际拥有的列表。

即使我手动运行这些命令或删除db / *中的文件,db:migrate仍然无用 rake db:drop:all
rake db:create
rake db:migrate

我也试过db:resetdb:rollback STEP=1000

如果我指定一个VERSION编号(db:migrate:status给出的列表中的一个)为:
rake db:migrate VERSION=20150106184930

我有以下错误:
No migration with version number 20150106184930

我还使用以下方式生成了新的迁移:
rails generate migration TestMigration
同样,db:migrate完全忽略了它。

我目前的设置是:windows7,rails 4.2.0,rake 10.3.2。

感谢您的帮助,线索......

3 个答案:

答案 0 :(得分:1)

在rake中进行了几个小时的深度调试后,重新安装了所有完整的设置,我终于发现问题来自于“非特殊”字符[]我的项目路径中的一些问题!

DAMN RAILS!

由于可读性,我项目的所有文件夹都以“[NAME-OF-PROJECT] xxxx /”开头...然后在这个特定的rails项目中出现了rails应用程序的子文件夹。

没有错误,没有任何迹象表明路径名称可能是问题。我非常感谢“[”和“]”不是禁止的角色(即使在linux上):http://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words
为什么“[”或“]”使rake db:migrate失败而不是rake db:migrate:status

对我而言,它清楚地显示了rails架构的一些弱点。我应该为此做一个错误报告......有人可以给我一些报告邮件列表或其他什么吗?

我希望我的不幸会为其他人节省数小时。

答案 1 :(得分:0)

如果这是新的导轨设置,您的系统可能没有宝石,只能在您的应用中使用宝石。尝试将bundle exec添加到rake命令中。

bundle exec rake db:migrate

答案 2 :(得分:0)

尝试运行gem update并再次尝试rake db:migrate