大佬教程收集整理的这篇文章主要介绍了奇怪的 Rails 迁移行为 - 重复 add_references 命令并因 ActiveRecord::StatementInvalid: PG::DuplicateColumn 而失败,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在运行 Rails 5.2.4.4,发现当我的用户迁移中列出了两个 add_references 时出现了最奇怪的行为。即使它们是不同表引用的唯一行,输出显示第一个重复,然后由于重复列而失败。如果我切换语句,它只会导致另一个 add_reference 重复并失败:
迁移:
def change
add_column :users,:first_name,:string
add_column :users,:last_name,:authentication_token,:LOCATIOn,:is_admin,:Boolean,default: false
add_column :users,:account_active,default: true
end
add_reference :users,:tagging,type: :uuID,foreign_key: true,null: true
add_reference :users,:tenant,foreign_key: true
add_index :users,:created_at
导致此错误:
-- add_reference(:users,{:type=>:uuID,:foreign_key=>true,:null=>truE})
-- add_reference(:users,:null=>truE})
rails aborted!
ActiveRecord::StatemenTinvalID: PG::Duplicatecolumn: ERROR: column "tagging_ID" of relation "users" already exists
如果我切换 add_references 列:
add_reference :users,foreign_key: true
add_reference :users,null: true
我反而得到:
-- add_reference(:users,:foreign_key=>truE})
-- add_reference(:users,:foreign_key=>truE})
rails aborted!
ActiveRecord::StatemenTinvalID: PG::Duplicatecolumn: ERROR: column "tenant_ID" of relation "users" already exists
提前致谢。
以上是大佬教程为你收集整理的奇怪的 Rails 迁移行为 - 重复 add_references 命令并因 ActiveRecord::StatementInvalid: PG::DuplicateColumn 而失败全部内容,希望文章能够帮你解决奇怪的 Rails 迁移行为 - 重复 add_references 命令并因 ActiveRecord::StatementInvalid: PG::DuplicateColumn 而失败所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。