gpt4 book ai didi

ruby-on-rails - ruby rails : adding columns to existing database

转载 作者:数据小太阳 更新时间:2023-10-29 06:31:19 24 4
gpt4 key购买 nike

我收到一个错误:

SQLite3::SQLException: no such column: ideas.list_id: 
SELECT "ideas".* FROM "ideas"
WHERE "ideas"."list_id" = 2

但是我加了

t.integer :list_id

到我的数据库迁移文件:

class CreateIdeas < ActiveRecord::Migration
def change
create_table :ideas do |t|
t.string :name
t.text :description
t.string :picture

t.timestamps
end
add_foreign_key :ideas, :lists
end
end

这给了我这个:

class CreateIdeas < ActiveRecord::Migration
def change
create_table :ideas do |t|
t.string :name
t.text :description
t.string :picture
t.integer :list_id
t.timestamps
end
add_foreign_key :ideas, :lists
end
end

然后我输入

rake db:migrate

知道为什么我会收到一条错误消息说没有专栏吗?我对 RoR 还是陌生的。我必须以其他方式添加一列吗?

谢谢

最佳答案

正如 Speransky 所建议的,您永远不应该修改旧的迁移文件。相反,您应该创建一个新的迁移来添加所需的列。例如,在这种情况下,您将在您的应用中运行以下命令来创建新的迁移:

rails generate migration AddListIdColumnToIdeas list_id:integer

Rails 会自动生成迁移文件,唯一要做的就是运行 rake db:migrate

如果你坚持修改旧的迁移文件,你可以像以前一样添加列并运行以下命令:

rake db:drop
rake db:create
rake db:migrate

这将破坏您当前的数据库,创建一个新数据库并运行所有迁移(其中将包括您的新列)。

关于ruby-on-rails - ruby rails : adding columns to existing database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259687/

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