Ruby on rails 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
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
,它必须是唯一的