Миграция Rails: как перенести атрибут из модели в другую модель - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть модель отчета с атрибутом step_id, и я хочу переместить этот атрибут в модель ReportSheets, есть ли способ сгенерировать миграцию из терминала или я должен написать код самостоятельно:

class CreateReports < ActiveRecord::Migration[4.2]
  def change
    create_table :reports, id: :uuid do |t|
      t.uuid     :declarant_id

      t.integer  :reference
      t.datetime :sent_at
      t.uuid     :step_id

      t.boolean  :is_archived, default: false
      t.uuid     :updated_by_id
      t.string   :device_id

      t.timestamps null: false
    end

    add_index :reports, :reference, unique: true

    add_index :reports, :declarant_id
    add_index :reports, :device_id
    add_index :reports, :step_id

  end
end


class CreateReportSheets < ActiveRecord::Migration[4.2]
  def change
    create_table :report_sheets, id: :uuid do |t|
      t.string  :title,        null: false
      t.boolean :is_template,  default: false
      t.uuid    :report_id
      t.integer :seed_number
      t.integer :order
      t.hstore  :steps, array: true, default: '{}', null: false

      t.uuid  :template_id

      t.boolean :is_archived,   default: false
      t.uuid    :updated_by_id
      t.string  :device_id

      t.timestamps null: false
    end

    add_index :report_sheets, :report_id
    add_index :report_sheets, :template_id
    add_index :report_sheets, :seed_number
    add_index :report_sheets, :is_template

    add_index :report_sheets, :is_archived
    add_index :report_sheets, :device_id
  end
end

и в случае наличия связи между двумя моделями, такими как add_index: reports,: step_id?

...