这是我在新计算机设置上遇到的一个非常奇怪的问题(否则,它正在我的其他设置上工作)。
我在跑步: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:reset
,db: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。
感谢您的帮助,线索......
答案 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
。