Class: MigrateTablesToUuidPrimaryKey

Inherits:
Ductwork::Migration show all
Defined in:
lib/generators/ductwork/update/templates/db/migrate_tables_to_uuid_primary_key.rb

Constant Summary collapse

TABLE_TO_FOREIGN_KEYS =
{
  ductwork_pipelines: [],
  ductwork_steps: [:pipeline],
  ductwork_jobs: [:step],
  ductwork_executions: [:job],
  ductwork_availabilities: [:execution],
  ductwork_runs: [:execution],
  ductwork_results: [:execution],
  ductwork_tuples: [:pipeline],
  ductwork_processes: [],
}.freeze
FOREIGN_KEY_TO_TABLES =
{
  pipeline: %i[ductwork_steps ductwork_tuples],
  step: %i[ductwork_jobs],
  job: %i[ductwork_executions],
  execution: %i[ductwork_availabilities ductwork_runs ductwork_results],
  availabilitie: [],
  run: [],
  result: [],
  tuple: [],
  processe: [],
}.freeze

Instance Method Summary collapse

Methods included from Ductwork::MigrationHelper

#belongs_to, #create_ductwork_table, #mysql?, #postgresql?, #uuid_column_type

Instance Method Details

#downObject

Raises:

  • (ActiveRecord::IrreversibleMigration)


37
38
39
40
# File 'lib/generators/ductwork/update/templates/db/migrate_tables_to_uuid_primary_key.rb', line 37

def down
  raise ActiveRecord::IrreversibleMigration,
        "Cannot revert UUID migration — old integer IDs have been dropped. Restore from backup."
end

#upObject



27
28
29
30
31
32
33
34
35
# File 'lib/generators/ductwork/update/templates/db/migrate_tables_to_uuid_primary_key.rb', line 27

def up
  create_primary_key_uuid_columns
  create_foreign_key_uuid_columns
  backfill_uuid_columns
  drop_old_foreign_keys
  swap_primary_keys
  swap_foreign_keys
  create_missing_indexes
end