如何通过终端使用 ActiveRecord 将列添加到表中。我正在尝试使用 add_column 方法,但它不起作用。请问有什么想法吗?
问问题
15471 次
3 回答
26
如果您与团队一起工作,最好编写迁移并且必须这样做。当您进行数据库更改时,每个开发人员的环境也必须更新。否则,您将遇到一些疯狂的开发人员。
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
于 2012-07-13T20:17:43.313 回答
24
您可以直接在 Rails 控制台中运行rails c
迁移ActiveRecord::Migration
出于您的目的,下一个命令将执行您的要求:
> ActiveRecord::Migration.add_column :table_name, :field_name, :field_type
于 2016-05-24T17:10:32.330 回答
3
如果您只是随便玩玩,通常使用某种 SQLite 客户端比通过 Rails DB 层更容易操作数据库。
如果您正在为项目执行此操作,请创建适当的迁移文件并运行它。
如果您决定这样做,add_column
则可以通过ActiveRecord::Base.connection
驱动程序对象使用该方法。
于 2012-07-13T20:17:21.843 回答