class DbVcs::Adapters::Postgres
Public Class Methods
config()
click to toggle source
@return [DbVcs::Adapters::Postgres::Config]
# File lib/db_vcs/adapters/postgres.rb, line 23 def config DbVcs.config.pg_config end
connection()
click to toggle source
@return [PG::Connection]
# File lib/db_vcs/adapters/postgres.rb, line 28 def connection @connection ||= begin require "pg" PG.connect(user: config.username, host: config.host, port: config.port, password: config.password) end end
copy_database(to_db, from_db)
click to toggle source
@param to_db [String] @param from_db [String] @return void
# File lib/db_vcs/adapters/postgres.rb, line 45 def copy_database(to_db, from_db) connection.exec("CREATE DATABASE #{to_db} TEMPLATE #{from_db} OWNER #{config.username}") end
create_database(db_name)
click to toggle source
@param db_name [String] @return void
# File lib/db_vcs/adapters/postgres.rb, line 51 def create_database(db_name) connection.exec("CREATE DATABASE #{db_name} OWNER #{config.username}") end
db_exists?(db_name)
click to toggle source
@param db_name [String] @return [Boolean]
# File lib/db_vcs/adapters/postgres.rb, line 38 def db_exists?(db_name) !connection.exec("SELECT 1 AS one FROM pg_database WHERE datname='#{db_name}' LIMIT 1").first.nil? end
drop_by_dbname(db_name)
click to toggle source
@param db_name [String] @return [void]
# File lib/db_vcs/adapters/postgres.rb, line 62 def drop_by_dbname(db_name) connection.exec("DROP DATABASE IF EXISTS #{db_name}") end
list_databases()
click to toggle source
@return [Array<String>]
# File lib/db_vcs/adapters/postgres.rb, line 56 def list_databases connection.exec("SELECT datname FROM pg_database WHERE datistemplate = false").to_a.flat_map(&:values) end