15

如何通过终端使用 ActiveRecord 将列添加到表中。我正在尝试使用 add_column 方法,但它不起作用。请问有什么想法吗?

4

3 回答 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 回答