如何通过终端使用ActiveRecord向表中添加列。我试图使用add_column方法,但它无法正常工作。有什么想法吗?
答案 0 :(得分:14)
如果您正在与团队合作,最好编写迁移和必须。进行数据库更改时,每个开发人员的环境也必须更新。否则,你会有一些疯狂的开发者。
rails generate migration AddPartNumberToProducts part_number:string
将生成
class AddPartNumberToProducts < ActiveRecord::Migration
def change
add_column :products, :part_number, :string
end
end
然后运行迁移
rake db:migrate
http://guides.rubyonrails.org/migrations.html
修改强>
对于rails控制台命令行,请检查@ tadman的答案或使用Bengala建议的内容
ActiveRecord::Migration.add_column :products, :part_number, :string
答案 1 :(得分:13)
您可以使用rails c
ActiveRecord::Migration
中运行迁移
为了您的目的,下一个命令将按您的要求执行:
> ActiveRecord::Migration.add_column :table_name, :field_name, :field_type
答案 2 :(得分:3)
如果你只是在乱砍,使用某种类型的SQLite客户端比通过Rails数据库层操作数据库通常更容易。
如果您正在为项目执行此操作,请创建正确的迁移文件并运行它。
如果您决定这样做,可以通过add_column
驱动程序对象使用ActiveRecord::Base.connection
方法。