Sha256: 288d97e935f38d69bfb09491cbddf20d379e529afb35db18c54226041ae51f90
Contents?: true
Size: 1017 Bytes
Versions: 2
Compression:
Stored size: 1017 Bytes
Contents
module PgSlice class CLI desc "swap TABLE", "Swap the intermediate table with the original table" option :lock_timeout, default: "5s", desc: "Lock timeout" def swap(table) table = create_table(table) intermediate_table = table.intermediate_table retired_table = table.retired_table assert_table(table) assert_table(intermediate_table) assert_no_table(retired_table) queries = [ "ALTER TABLE #{quote_table(table)} RENAME TO #{quote_no_schema(retired_table)};", "ALTER TABLE #{quote_table(intermediate_table)} RENAME TO #{quote_no_schema(table)};" ] table.sequences.each do |sequence| queries << "ALTER SEQUENCE #{quote_ident(sequence["sequence_schema"])}.#{quote_ident(sequence["sequence_name"])} OWNED BY #{quote_table(table)}.#{quote_ident(sequence["related_column"])};" end queries.unshift("SET LOCAL lock_timeout = #{escape_literal(options[:lock_timeout])};") run_queries(queries) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pgslice-0.6.1 | lib/pgslice/cli/swap.rb |
pgslice-0.6.0 | lib/pgslice/cli/swap.rb |