Class: SequelRails::Storage::Postgres
- Inherits:
-
Abstract
- Object
- Abstract
- SequelRails::Storage::Postgres
show all
- Defined in:
- lib/sequel_rails/storage/postgres.rb
Instance Attribute Summary
Attributes inherited from Abstract
#config
Instance Method Summary
collapse
Methods inherited from Abstract
#charset, #collation, #create, #database, #drop, #dump, #host, #initialize, #load, #owner, #password, #port, #username
Instance Method Details
#_create ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/sequel_rails/storage/postgres.rb', line 4
def _create
with_pgpassword do
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
commands << database
safe_exec commands
end
end
|
#_drop ⇒ Object
21
22
23
24
25
26
27
28
|
# File 'lib/sequel_rails/storage/postgres.rb', line 21
def _drop
with_pgpassword do
commands = ['dropdb']
add_connection_settings commands
commands << database
safe_exec commands
end
end
|
#_dump(filename) ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/sequel_rails/storage/postgres.rb', line 30
def _dump(filename)
with_pgpassword do
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
commands << database
safe_exec commands
end
end
|
#_load(filename) ⇒ Object
44
45
46
47
48
49
50
51
52
|
# File 'lib/sequel_rails/storage/postgres.rb', line 44
def _load(filename)
with_pgpassword do
commands = ['psql']
add_connection_settings commands
add_option commands, '--file', filename
commands << database
safe_exec commands
end
end
|
#close_connections ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/sequel_rails/storage/postgres.rb', line 54
def close_connections
db = ::Sequel.connect(config)
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
nil
end
|
#ctype ⇒ Object
82
83
84
|
# File 'lib/sequel_rails/storage/postgres.rb', line 82
def ctype
@ctype ||= config['ctype'] || ''
end
|
#encoding ⇒ Object
70
71
72
|
# File 'lib/sequel_rails/storage/postgres.rb', line 70
def encoding
@encoding ||= config['encoding'] || charset
end
|
#locale ⇒ Object
74
75
76
|
# File 'lib/sequel_rails/storage/postgres.rb', line 74
def locale
@locale ||= config['locale'] || ''
end
|
#maintenance_db ⇒ Object
90
91
92
|
# File 'lib/sequel_rails/storage/postgres.rb', line 90
def maintenance_db
@maintenance_db ||= config['maintenance_db'] || ''
end
|
#tablespace ⇒ Object
86
87
88
|
# File 'lib/sequel_rails/storage/postgres.rb', line 86
def tablespace
@tablespace ||= config['tablespace'] || ''
end
|
#template ⇒ Object
78
79
80
|
# File 'lib/sequel_rails/storage/postgres.rb', line 78
def template
@template ||= config['template'] || ''
end
|