Sha256: 625b7fc782c28e3417dd1671dec8f1dbb0d388f68d412d26b831e563fb939f05
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
# frozen_string_literal: false # @!method ActiveRecord::Migration#rename_composite_type(name, to:) # Change the name and/or schema of a composite type # # @param [#to_s] name (nil) The qualified name of the type # @option [#to_s] :to (nil) The new qualified name for the type # # @example # # rename_composite_type "point", to: "paint.colored_point" # # The operation is always reversible. module PGTrunk::Operations::CompositeTypes # @private class RenameCompositeType < Base validates :new_name, presence: true validates :force, :if_exists, :columns, absence: true def to_sql(_version) [*change_schema, *change_name].join("; ") end def invert self.class.new(**to_h, name: new_name, to: name) end private def change_schema return if name.schema == new_name.schema "ALTER TYPE #{name.to_sql} SET SCHEMA #{new_name.schema.inspect};" end def change_name return if new_name.name == name.name moved = name.merge(schema: new_name.schema) "ALTER TYPE #{moved.to_sql} RENAME TO #{new_name.name.inspect};" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pg_trunk-0.1.0 | lib/pg_trunk/operations/composite_types/rename_composite_type.rb |