
** 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:使用新数据库加载失败所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)