【发布时间】:2021-03-13 11:47:14
【问题描述】:
我正在运行 Rails 5.2.4.4,当我在用户迁移中列出了两个 add_references 时,我发现了最奇怪的行为。即使它们是不同表引用的唯一行,输出显示第一个重复,然后由于重复列而失败。如果我切换语句,它只会导致另一个 add_reference 重复并失败:
迁移:
def change
add_column :users, :first_name, :string
add_column :users, :last_name, :string
add_column :users, :authentication_token, :string
add_column :users, :location, :string
add_column :users, :is_admin, :boolean, default: false
add_column :users, :account_active, :boolean, default: true
end
add_reference :users, :tagging, type: :uuid, foreign_key: true, null: true
add_reference :users, :tenant, type: :uuid, foreign_key: true
add_index :users, :created_at
导致此错误:
-- add_reference(:users, :tagging, {:type=>:uuid, :foreign_key=>true, :null=>true})
-- add_reference(:users, :tagging, {:type=>:uuid, :foreign_key=>true, :null=>true})
rails aborted!
ActiveRecord::StatementInvalid: PG::DuplicateColumn: ERROR: column "tagging_id" of relation "users" already exists
如果我切换 add_references 列:
add_reference :users, :tenant, type: :uuid, foreign_key: true
add_reference :users, :tagging, type: :uuid, foreign_key: true, null: true
我反而得到:
-- add_reference(:users, :tenant, {:type=>:uuid, :foreign_key=>true})
-- add_reference(:users, :tenant, {:type=>:uuid, :foreign_key=>true})
rails aborted!
ActiveRecord::StatementInvalid: PG::DuplicateColumn: ERROR: column "tenant_id" of relation "users" already exists
提前致谢。
【问题讨论】:
标签: ruby-on-rails-5 rails-migrations