Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby rake db:schema:load多次加载schema.rb?_Ruby_Ruby On Rails 4_Rake - Fatal编程技术网

Ruby rake db:schema:load多次加载schema.rb?

Ruby rake db:schema:load多次加载schema.rb?,ruby,ruby-on-rails-4,rake,Ruby,Ruby On Rails 4,Rake,从Rails 3升级到Rails 4后,db:schema:load任务失败。我做了一些深入研究,发现在升级之后,当我运行bundle exec rake db:schema:load时,db/schema.rb文件被加载了两次。第一次运行良好;然后,由于create\u table force:true由于表上存在依赖性约束而失败,因此第二次执行失败 我已经剥离了所有额外的rake任务和增强,试图排除任何代码,但这仍然会加载schema.rb两次。它总是正好是我能够在SQLite上成功运行它并

从Rails 3升级到Rails 4后,
db:schema:load
任务失败。我做了一些深入研究,发现在升级之后,当我运行
bundle exec rake db:schema:load
时,
db/schema.rb
文件被加载了两次。第一次运行良好;然后,由于
create\u table force:true
由于表上存在依赖性约束而失败,因此第二次执行失败


我已经剥离了所有额外的rake任务和增强,试图排除任何代码,但这仍然会加载schema.rb两次。它总是正好是我能够在SQLite上成功运行它并在那里看到相同行为的两倍,但是由于SQLite没有强制执行表约束,它一直运行到完成。

您可以检查以确保您的Rakefile没有两次加载任务。当Rake使用与现有任务相同的名称注册一个任务时,它将按顺序运行这两个任务,而不是用新的定义替换旧的定义。

您将看到它两次,因为在
开发中,Rails在同一次运行中为
测试和
开发运行db任务


请查看该文件以了解详细信息,特别是方法
#load#u schema_current
(这是因为您引用了它)和
#每个_current_配置

我在Rails 5中看到了这一点,但仅在开发环境中看到。RAILS_ENV=测试工作正常。