gpt4 book ai didi

ruby-on-rails-3 - 在 Rails 迁移中向现有表添加列

转载 作者:行者123 更新时间:2023-12-03 04:00:13 26 4
gpt4 key购买 nike

我有一个用户模型,需要一个 :email 列(我忘记在初始支架期间添加该列)。

我打开了迁移文件并添加了 t.string :email,执行了 rake db:migrate,并得到了 NoMethodError。然后我添加了这一行

add_column :users, :email, :string

再次rake db:migrate,再次NoMethodError。我在这里错过了一步吗?

这是迁移文件。

class CreateUsers < ActiveRecord::Migration  
def self.up
add_column :users, :email, :string
create_table :users do |t|
t.string :username
t.string :email
t.string :crypted_password
t.string :password_salt
t.string :persistence_token

t.timestamps
end
end

def self.down
drop_table :users
end
end

最佳答案

如果您已经运行了原始迁移(在编辑之前),那么您需要生成一个新的迁移(railsgeneratemigrationadd_email_to_usersemail:string 就可以了)。它将创建一个包含行的迁移文件:add_column:用户、电子邮件、字符串然后执行rake db:migrate,它将运行新的迁移,创建新列。

如果您尚未运行原始迁移,您可以直接编辑它,就像您尝试做的那样。您的迁移代码几乎完美:您只需完全删除add_column行(该代码试图在创建表之前向表添加列,并且您的表创建代码已经更新为包含 t.string :email )。

关于ruby-on-rails-3 - 在 Rails 迁移中向现有表添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834809/

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