Sha256: 193ef519b103dbf102272db93d51fbec7d3877fc1e2c0dc577b8f38085c63055
Contents?: true
Size: 990 Bytes
Versions: 2
Compression:
Stored size: 990 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_name"])} OWNED BY #{quote_table(table)}.#{quote_ident(sequence["related_column"])};" end queries.unshift("SET LOCAL lock_timeout = '#{options[:lock_timeout]}';") if server_version_num >= 90300 run_queries(queries) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pgslice-0.4.6 | lib/pgslice/cli/swap.rb |
pgslice-0.4.5 | lib/pgslice/cli/swap.rb |