通过终端添加列

时间:2012-07-13 20:01:40

标签: ruby-on-rails activerecord

如何通过终端使用ActiveRecord向表中添加列。我试图使用add_column方法,但它无法正常工作。有什么想法吗?

3 个答案:

答案 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

直接在rails控制台ActiveRecord::Migration中运行迁移

为了您的目的,下一个命令将按您的要求执行:

>   ActiveRecord::Migration.add_column :table_name, :field_name, :field_type

答案 2 :(得分:3)

如果你只是在乱砍,使用某种类型的SQLite客户端比通过Rails数据库层操作数据库通常更容易。

如果您正在为项目执行此操作,请创建正确的迁移文件并运行它。

如果您决定这样做,可以通过add_column驱动程序对象使用ActiveRecord::Base.connection方法。