class PGTrunk::Operations::Views::ChangeView
@private
Public Instance Methods
invert()
click to toggle source
# File lib/pg_trunk/operations/views/change_view.rb, line 66 def invert irreversible!("if_exists: true") if if_exists undefined = inversion.select { |_, v| v.nil? }.keys.join(", ").presence raise IrreversibleMigration.new(self, nil, <<~MSG.squish) if undefined Undefined values to revert #{undefined}. MSG self.class.new(**inversion, name: name) end
to_sql(server_version)
click to toggle source
# File lib/pg_trunk/operations/views/change_view.rb, line 62 def to_sql(server_version) create_view&.to_sql(server_version) end
Private Instance Methods
changes()
click to toggle source
# File lib/pg_trunk/operations/views/change_view.rb, line 78 def changes @changes ||= to_h.slice(:sql_definition, :check, :comment).compact end
create_view()
click to toggle source
# File lib/pg_trunk/operations/views/change_view.rb, line 91 def create_view return if name.blank? @create_view ||= CreateView.find { |o| o.name == name }&.tap do |op| op.attributes = { **changes, replace_existing: true } end end
inversion()
click to toggle source
# File lib/pg_trunk/operations/views/change_view.rb, line 82 def inversion @inversion ||= {}.tap do |inv| inv[:version] = from_version if version inv[:sql_definition] = from_sql_definition unless version inv[:check] = from_check if check inv[:comment] = from_comment if comment end end