module Pakyow::Data::Adapters::Sql::Migrator::AdapterMethods::Postgres
Public Class Methods
globalize_connection_opts!(connection_opts)
click to toggle source
# File lib/pakyow/data/adapters/sql/migrator/adapter_methods.rb, line 62 def self.globalize_connection_opts!(connection_opts) connection_opts[:initial] = Sql.build_opts(path: connection_opts[:path]) connection_opts[:path] = "template1" end
Public Instance Methods
create!()
click to toggle source
# File lib/pakyow/data/adapters/sql/migrator/adapter_methods.rb, line 38 def create! handle_error do @connection.adapter.connection.run("CREATE DATABASE \"#{database}\"") end end
drop!()
click to toggle source
# File lib/pakyow/data/adapters/sql/migrator/adapter_methods.rb, line 44 def drop! handle_error do @connection.adapter.connection.run <<~SQL SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE -- don't kill my own connection! pid <> pg_backend_pid() -- don't kill the connections to other databases AND datname = '#{@connection.opts[:path]}'; SQL @connection.adapter.connection.run("DROP DATABASE \"#{database}\"") end end
Private Instance Methods
database()
click to toggle source
# File lib/pakyow/data/adapters/sql/migrator/adapter_methods.rb, line 67 def database if @connection.opts.key?(:initial) @connection.opts[:initial][:path] else @connection.opts[:path] end end