【问题标题】:rake db:migrate not working properly without versionrake db:migrate 在没有版本的情况下无法正常工作
【发布时间】:2013-02-22 22:25:57
【问题描述】:

我有一个没有依赖项的简单 rails 应用程序(rails 新示例)。然后我创建了一个脚手架学生(rails g scaffold Student name:string)。之后,我运行 rake db:create 然后 rake db:migrate。

rake db:migrate 不返回任何内容。它没有执行我的迁移,屏幕上没有错误。但是,当我执行 rake db:migrate VERSION=123456 时,迁移运行正常。

您知道 rake db:migrate without version 发生了什么吗? (我在 MAC OS X 上)

谢谢

【问题讨论】:

  • 是否有新的迁移来“迁移”?
  • 是的,有一个。我做了以下步骤: rails new my_app && rails g scaffold Student name:string && rake db:create && rake db:migrate
  • @user1985010- VERSION=123456 没有意义,除非您使用此特定版本号进行学生迁移。
  • rake db:migrate 仅在所有迁移都已运行且rake db:migrate VERSION= 123456 使用此版本号执行迁移时不执行任何操作。
  • 您在创建 Rails 应用程序后是否cd new_app?查看您的 db/schema.rb 文件。那里显示的是什么版本号?示例:ActiveRecord::Schema.define(:version => 20130305185827)。如果一切都失败了,请执行rm db/schema.rb 并再次迁移。

标签: ruby-on-rails migration rake


【解决方案1】:

我能得出的唯一合乎逻辑的答案是,您的环境将变量 VERSION 设置为 0。在命令行中输入 echo $VERSION

如果你这样做,运行rake db:migrate 应该等同于rake db:migrate VERSION=0,它的行为类似于你所描述的。取消设置变量 (unset VERSION),然后重试。

如果你不这样做,这个答案显然是不正确的。

【讨论】:

  • 嗨 Leito,这是输出:echo $VERSION 0.0.1.3086
  • 我不知道是谁添加的,但试试unset VERSION,然后是rake db:migrate
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
相关资源
最近更新 更多