Ruby on rails Rails:通过迁移填充现有表

Ruby on rails Rails:通过迁移填充现有表,ruby-on-rails,ruby,migration,Ruby On Rails,Ruby,Migration,假设我已经在Rails中进行了迁移: class CreateStudies < ActiveRecord::Migration def change create_table :studies do |t| t.string :display_name, null: false t.string :tag_name, null: false t.timestamps end add_index :studies, :ta

假设我已经在Rails中进行了迁移:

class CreateStudies < ActiveRecord::Migration
  def change
    create_table :studies do |t|
      t.string :display_name, null: false
      t.string :tag_name, null: false

      t.timestamps
    end

    add_index :studies, :tag_name, unique: true
  end
end
class-CreateStudies

后来我意识到我想用许多行填充这个表,我不想使用
rake db:rollback
或seeds.rb文件。新迁移文件的格式是什么?

我认为最好使用rake tasks生成一些新对象,而不是使用迁移。下面是一个示例代码。您还可以将生成的对象数作为任务的参数发送

只是:

在命令提示下,生成:

rails generate migration AddInitialStudies
并修改生成迁移的
up
down
方法:

class AddInitialStudies < ActiveRecord::Migration
  def up
    Study.create(display_name: "Example name", tag_name: "example_name")
  end

  def down
    Study.delete_all
  end
end
class AddInitialStudies
此时,我生成一个研究对象,但您可以添加任意数量的对象

down
上,删除在
up
上添加的记录,因为回滚和再次迁移将复制添加的记录。我假设唯一的研究记录是在
up
上创建的。注意
:标记\u name
,它必须是唯一的