Sha256: 6417ae29849900d5fcab930e059c60373f4c0cca032c995e9bc7224a7b06ef4e
Contents?: true
Size: 1.11 KB
Versions: 2
Compression:
Stored size: 1.11 KB
Contents
class RenameTrafficSchema < Landable::Migration def traffic_schema "#{Landable.configuration.database_schema_prefix}landable_traffic" end def schema_exists(schema) execute("SELECT COUNT(*) FROM pg_namespace WHERE nspname = '#{schema}'")[0]['count'] == '1' end def move_objects(from_schema, to_schema, relkind, object_type) # move objects from public to new schema objects = select_all(" SELECT o.relname FROM pg_class o JOIN pg_namespace n ON n.oid=o.relnamespace AND n.nspname = '#{from_schema}' AND o.relkind = '#{relkind}' ORDER BY o.relname ") objects.each do |object| sql = %( ALTER #{object_type} #{from_schema}.#{object['relname']} SET SCHEMA #{to_schema} ) puts "Moving #{from_schema}.#{object['relname']} TO #{to_schema}" execute sql end end def up return unless schema_exists('traffic') execute("CREATE SCHEMA #{traffic_schema}") move_objects('traffic', "#{traffic_schema}", 'r', 'TABLE') move_objects('traffic', "#{traffic_schema}", 'S', 'SEQUENCE') end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
landable-1.14.0 | db/migrate/20140224205516_rename_traffic_schema.rb |
landable-1.13.2 | db/migrate/20140224205516_rename_traffic_schema.rb |