gpt4 book ai didi

ruby-on-rails - Ruby on Rails 重复列名 : user_id: ALTER TABLE "articles" ADD "user_id" integer

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:08 26 4
gpt4 key购买 nike

我不断收到错误消息:-- add_column(:articles, :user_id, :integer) rake 中止!StandardError:发生错误,此迁移和所有后续迁移均已取消:

SQLite3::SQLException: 重复列名: user_id: ALTER TABLE "articles"ADD "user_id"integer

这是我所做的所有迁移:

 class AddUserIdToArticles < ActiveRecord::Migration
def change
add_column :articles, :user_id, :integer
end
end

class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :username
t.string :email
t.timestamps
end
end
end

class AddDescriptionToArticles < ActiveRecord::Migration
def change
add_column :articles, :description, :text
add_column :articles, :created_at, :datetime
add_column :articles, :updated_at, :datetime
end
end

class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
t.string :title
end
end
end

最佳答案

出现错误

class AddUserIdToArticles < ActiveRecord::Migration
def change
add_column :articles, :user_id, :integer
end
end

因为 user_id 列已经存在于表 articles

您可以通过将代码更改为:

class AddUserIdToArticles < ActiveRecord::Migration
def change
unless column_exists? :articles, :user_id
add_column :articles, :user_id, :integer
end
end
end

但我不建议这样做,该列一开始就不应该存在,或者您只是想添加一个已经存在的列。

顺便说一句,我建议为你的外键添加一个索引,比如 user_id

关于ruby-on-rails - Ruby on Rails 重复列名 : user_id: ALTER TABLE "articles" ADD "user_id" integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36685112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com