【问题标题】:Rails 5: How to make a 'migration partial' in database migrationsRails 5:如何在数据库迁移中进行“部分迁移”
【发布时间】:2018-02-09 11:15:58
【问题描述】:

我有许多表使用相同的列名。我想将它们拆分为部分,以便每次重新创建数据库时都可以编辑部分以更改列。

我试过了:

水果迁移文件

class CreateFruit < ActiveRecord::Migration[5.0]
  def change
    create_table :fruits do |t|
      partial
    end
end

宠物迁移文件

class CreatePet < ActiveRecord::Migration[5.0]
  def change
    create_table :pets do |t|
      partial
      t.string :personality
    end
end

部分文件(application.rb?)

def partial
  t.string :name
  t.string :size
end

但是,我在运行迁移时总是遇到语法错误

【问题讨论】:

    标签: ruby-on-rails rails-migrations


    【解决方案1】:

    创建一个名为db/migrate/_partial_migration.rb的文件:

    class PartialMigration
      class << self
        def call(t)
          t.string :name
          t.string :size
        end
      end
    end
    

    在您的迁移中db/migrate/20180209112447_create_pet.rb:

    require_relative "./_partial_migration.rb"
    
    class CreatePet < ActiveRecord::Migration[5.0]
      def change
        create_table :bar do |t|
          PartialMigration.call(t)
          t.string :personality
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 2012-03-12
      • 1970-01-01
      • 2012-04-11
      • 2011-10-12
      • 2016-10-15
      • 2016-02-28
      相关资源
      最近更新 更多