通过终端添加列

Swe*_*ebo 8 activerecord ruby-on-rails

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

Hit*_*eeb 16

如果您正在与团队合作,最好编写迁移和必须.进行数据库更改时,每个开发人员的环境也必须更新.否则,你会有一些疯狂的开发者.

rails generate migration AddPartNumberToProducts part_number:string
Run Code Online (Sandbox Code Playgroud)

会产生

class AddPartNumberToProducts < ActiveRecord::Migration
  def change
    add_column :products, :part_number, :string
  end
end
Run Code Online (Sandbox Code Playgroud)

然后运行迁移

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

http://guides.rubyonrails.org/migrations.html

编辑:

对于rails控制台命令行,请检查@tadman的答案或使用Bengala建议的内容

ActiveRecord::Migration.add_column :products, :part_number, :string
Run Code Online (Sandbox Code Playgroud)


Ben*_*ala 16

您可以直接在轨运行控制台迁移rails cActiveRecord::Migration

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

>   ActiveRecord::Migration.add_column :table_name, :field_name, :field_type
Run Code Online (Sandbox Code Playgroud)

  • 这次真是万分感谢。当然,最好是几乎一直都写迁移。但是_有时_,您确切地知道自己在做什么,只想直接运行更改:) (2认同)