How do I add some inserts in rails migration?

后端 未结 5 1131
说谎
说谎 2020-12-04 23:47

After creating a table (by migration), I want to insert some entries directly. How must I write a migration for this?

thanks

5条回答
  •  -上瘾入骨i
    2020-12-05 00:36

    create a new migration file like 047_add_rows_in_system_settings.rb

     class AddRowsInAddSystemSettings < ActiveRecord::Migration
            def self.up
              SystemSetting.create{:name => "name1", :label => "Use notice?", :value => 1}
              SystemSetting.create{:name => "name2", :label => "Use notice?", :value => 2}
             end
    
            def self.down
              SystemSetting.delete_all
            end
          end
    

    OR

    while creating table

    046_system_settings.rb

    class AddSystemSettings < ActiveRecord::Migration
        def self.up
          create_table :system_settings do |t|
            t.string  :name
            t.string  :label
            t.text  :value
            t.string  :type
            t.integer  :position
          end
    
          SystemSetting.create :name => "notice", :label => "Use notice?", :value => 1
        end
    
        def self.down
          drop_table :system_settings
        end
      end
    

    Ref:- http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

提交回复
热议问题