如何在迁移中添加新属性?

时间:2014-07-23 22:27:31

标签: ruby-on-rails migrate dbmigrate

我目前有migrate之类的东西:

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.string :email
      t.string :encrypted_password
      t.string :salt

      t.timestamps
    end
  end
end

现在,如果我想在这个文件中添加两个新属性,一个是:t.string :type,另一个是:t.string :memory_token,我该怎么办呢?

2 个答案:

答案 0 :(得分:3)

如果您已经运行了迁移,则必须创建一个新的迁移。

rails g migration AddTypeToUsers

然后在迁移文件中,您可以在

中进行编辑
change_table :users do |t|
  t.string :type
  t.string :memory_token
end

然后运行迁移rake db:migrate进行更改

如果您还没有运行迁移,那么您只需添加

即可
  t.string :type
  t.string :memory_token

您已向我们展示该文件,然后运行迁移

答案 1 :(得分:2)

+1到@JTG

你也可以用一行来做到这一点:

rails g migration AddTypeAndMemoryTokenToUsers type:string memory_token:string

您将获得以下文件:

class AddTypeAndMemoryTokenToUsers < ActiveRecord::Migration
  def change
    add_column :users, :type, :string
    add_column :users, :memory_token, :string
  end
end

将在运行rake db:migrate

后进行更改