class PGTrunk::Operations::Sequences::CreateSequence
@private
Public Instance Methods
invert()
click to toggle source
# File lib/pg_trunk/operations/sequences/create_sequence.rb, line 141 def invert irreversible!("if_not_exists: true") if if_not_exists DropSequence.new(**to_h.except(:if_not_exists)) end
to_sql(_server_version)
click to toggle source
# File lib/pg_trunk/operations/sequences/create_sequence.rb, line 137 def to_sql(_server_version) [create_sequence, *comment_sequence, register_sequence].join(" ") end
Private Instance Methods
comment_sequence()
click to toggle source
# File lib/pg_trunk/operations/sequences/create_sequence.rb, line 163 def comment_sequence <<~SQL.squish if comment.present? COMMENT ON SEQUENCE #{name.to_sql} IS $comment$#{comment}$comment$; SQL end
create_sequence()
click to toggle source
# File lib/pg_trunk/operations/sequences/create_sequence.rb, line 148 def create_sequence sql = "CREATE SEQUENCE" sql << " IF NOT EXISTS" if if_not_exists sql << " #{name.to_sql}" sql << " AS #{type}" if type.present? sql << " INCREMENT BY #{increment_by}" if increment_by.present? sql << " MINVALUE #{min_value}" if min_value.present? sql << " MAXVALUE #{max_value}" if max_value.present? sql << " START WITH #{start_with}" if start_with.present? sql << " CACHE #{cache}" if cache.present? sql << " OWNED BY #{table}.#{column}" if table.present? && column.present? sql << " CYCLE" if cycle sql << ";" end
register_sequence()
click to toggle source
# File lib/pg_trunk/operations/sequences/create_sequence.rb, line 169 def register_sequence <<~SQL.squish INSERT INTO pg_trunk (oid, classid) SELECT c.oid, 'pg_sequence'::regclass FROM pg_sequence s JOIN pg_class c ON c.oid = s.seqrelid WHERE c.relname = #{name.quoted} AND c.relnamespace = #{name.namespace} ON CONFLICT DO NOTHING; SQL end