ruby-on-rails – Rails rake db:schema:使用新数据库加载失败

ruby-on-rails – Rails rake db:schema:使用新数据库加载失败,第1张

概述我运行rake db:drop(成功)并运行rake db:create(成功)但rake db:schema:load抛出一个我无法弄清楚的奇怪错误. ** Invoke db:schema:load (first_time)** Invoke environment (first_time)** Execute environmentrake aborted! PG::Undefined 我运行rake db:drop(成功)并运行rake db:create(成功)但rake db:schema:load抛出一个我无法弄清楚的奇怪错误.

** Invoke db:schema:load (first_time)** Invoke environment (first_time)** Execute environmentrake aborted! PG::Undefinedtable: ERROR:  relation "admins" does not existliNE 5: WHERE a.attrelID = '"admins"'::regclass                                      ^:               SELECT a.attname,format_type(a.atttypID,a.atttypmod),pg_get_expr(d.adbin,d.adrelID),a.attnotnull,a.atttypID,a.atttypmod               FROM pg_attribute a left JOIN pg_attrdef d                 ON a.attrelID = d.adrelID AND a.attnum = d.adnum           WHERE a.attrelID = '"admins"'::regclass                AND a.attnum > 0 AND NOT a.attisdropped             ORDER BY a.attnum

有什么建议?

解决方法 如果您正在使用FactoryBot(FactoryGirl)并且您的工厂包含任何模型类型引用,请确保它们用大括号括起来.这可以防止db:schema:加载爆炸,你不必注释掉你的工厂.

例如,假设您有一个带轮子和引擎的CAR模型,您的种子数据中有两种类型的引擎,并且使用特征来指定引擎类型.

这段代码将炸毁db:schema:load:

FactoryBot.define do  factory :car do    wheels    trait(:v8) {      engine Engine.find_by_type('V8')     }    trait(:i4) {      engine Engine.find_by_type('I4')     }  endend

这将阻止db:schema:加载爆炸:

FactoryBot.define do  factory :car do    wheels    trait(:v8) {      engine { Engine.find_by_type('V8') }    }    trait(:i4) {      engine { Engine.find_by_type('I4') }    }  endend

以下是对它的讨论:https://github.com/thoughtbot/factory_bot_rails/issues/134

更新:在为工厂指定类时也会发生这种情况:

这段代码将炸毁db:schema:load:

FactoryBot.define do  factory :hot_rod,class: Car do

这将阻止db:schema:加载(使用符号而不是模型类型):

FactoryBot.define do  factory :hot_rod,class: :car do
总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails rake db:schema:使用新数据库加载失败全部内容,希望文章能够帮你解决ruby-on-rails – Rails rake db:schema:使用新数据库加载失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1232665.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存