Class: Dataset::Database::Postgresql
- Inherits:
-
Base
- Object
- Base
- Dataset::Database::Postgresql
show all
- Defined in:
- lib/dataset/database/postgresql.rb
Overview
The interface to a PostgreSQL database, this will capture by creating a dump file and restore by loading one of the same.
Instance Method Summary
collapse
Methods inherited from Base
#clear, #record_heirarchy, #record_meta
Constructor Details
#initialize(database_spec, storage_path) ⇒ Postgresql
8
9
10
11
12
13
14
|
# File 'lib/dataset/database/postgresql.rb', line 8
def initialize(database_spec, storage_path)
@database = database_spec[:database]
@username = database_spec[:username]
@password = database_spec[:password]
@storage_path = storage_path
FileUtils.mkdir_p(@storage_path)
end
|
Instance Method Details
#capture(datasets) ⇒ Object
16
17
18
19
|
# File 'lib/dataset/database/postgresql.rb', line 16
def capture(datasets)
return if datasets.nil? || datasets.empty?
`pg_dump -c #{@database} > #{storage_path(datasets)}`
end
|
#restore(datasets) ⇒ Object
21
22
23
24
25
26
27
|
# File 'lib/dataset/database/postgresql.rb', line 21
def restore(datasets)
store = storage_path(datasets)
if File.file?(store)
`psql -U #{@username} -p #{@password} -e #{@database} < #{store}`
true
end
end
|
#storage_path(datasets) ⇒ Object
29
30
31
|
# File 'lib/dataset/database/postgresql.rb', line 29
def storage_path(datasets)
"#{@storage_path}/#{datasets.collect {|c| c.__id__}.join('_')}.sql"
end
|