lib/sequel_rails/storage/postgres.rb in sequel-rails-0.7.0 vs lib/sequel_rails/storage/postgres.rb in sequel-rails-0.8.0

- old
+ new

@@ -1,113 +1,110 @@ module SequelRails module Storage class Postgres < Abstract - def _create with_pgpassword do - commands = ["createdb"] + commands = ['createdb'] add_connection_settings commands - add_option commands, "--maintenance-db", maintenance_db - add_option commands, "--encoding", encoding - add_option commands, "--locale", locale - add_option commands, "--lc-collate", collation - add_option commands, "--lc-ctype", ctype - add_option commands, "--template", template - add_option commands, "--tablespace", tablespace - add_option commands, "--owner", owner + add_option commands, '--maintenance-db', maintenance_db + add_option commands, '--encoding', encoding + add_option commands, '--locale', locale + add_option commands, '--lc-collate', collation + add_option commands, '--lc-ctype', ctype + add_option commands, '--template', template + add_option commands, '--tablespace', tablespace + add_option commands, '--owner', owner commands << database safe_exec commands end end def _drop with_pgpassword do - commands = ["dropdb"] + commands = ['dropdb'] add_connection_settings commands commands << database safe_exec commands end end def _dump(filename) with_pgpassword do - commands = ["pg_dump"] + commands = ['pg_dump'] add_connection_settings commands - add_flag commands, "-i" - add_flag commands, "-s" - add_flag commands, "-x" - add_flag commands, "-O" - add_option commands, "--file", filename + add_flag commands, '-i' + add_flag commands, '-s' + add_flag commands, '-x' + add_flag commands, '-O' + add_option commands, '--file', filename commands << database safe_exec commands end end def _load(filename) with_pgpassword do - commands = ["psql"] + commands = ['psql'] add_connection_settings commands - add_option commands, "--file", filename + add_option commands, '--file', filename commands << database safe_exec commands end end def close_connections - begin - db = ::Sequel.connect(config) - # Will only work on Postgres > 8.4 - pid_column = db.server_version < 90200 ? "procpid" : "pid" - db.execute <<-SQL.gsub(/^\s{12}/,'') - SELECT COUNT(pg_terminate_backend(#{pid_column})) - FROM pg_stat_activity - WHERE datname = '#{database}'; - SQL - rescue => _ - # Will raise an error as it kills existing process running this - # command. Seems to be only way to ensure *all* test connections - # are closed - end + db = ::Sequel.connect(config) + # Will only work on Postgres > 8.4 + pid_column = db.server_version < 90_200 ? 'procpid' : 'pid' + db.execute <<-SQL.gsub(/^\s{12}/, '') + SELECT COUNT(pg_terminate_backend(#{pid_column})) + FROM pg_stat_activity + WHERE datname = '#{database}'; + SQL + rescue Sequel::DatabaseDisconnectError + # Will raise an error as it kills existing process running this + # command. Seems to be only way to ensure *all* test connections + # are closed + nil end def encoding - @encoding ||= config["encoding"] || charset + @encoding ||= config['encoding'] || charset end def locale - @locale ||= config["locale"] || "" + @locale ||= config['locale'] || '' end def template - @template ||= config["template"] || "" + @template ||= config['template'] || '' end def ctype - @ctype ||= config["ctype"] || "" + @ctype ||= config['ctype'] || '' end def tablespace - @tablespace ||= config["tablespace"] || "" + @tablespace ||= config['tablespace'] || '' end def maintenance_db - @maintenance_db ||= config["maintenance_db"] || "" + @maintenance_db ||= config['maintenance_db'] || '' end private def with_pgpassword - ENV["PGPASSWORD"] = password unless password.blank? + ENV['PGPASSWORD'] = password unless password.blank? yield ensure - ENV["PGPASSWORD"] = nil unless password.blank? + ENV['PGPASSWORD'] = nil unless password.blank? end def add_connection_settings(commands) - add_option commands, "--username", username - add_option commands, "--host", host - add_option commands, "--port", port.to_s + add_option commands, '--username', username + add_option commands, '--host', host + add_option commands, '--port', port.to_s end - end end end