Class: Dataflow::Adapters::PsqlAdapter
Overview
Interface between a data node and mongodb. We use mongodb to perform all the store/retrieve operations.
Constant Summary
Constants inherited
from SqlAdapter
SqlAdapter::SYSTEM_ID
Instance Attribute Summary
Attributes inherited from SqlAdapter
#client, #settings
Instance Method Summary
collapse
Methods inherited from SqlAdapter
add_extensions, #all, #all_paginated, client, #count, #create_indexes, #delete, disconnect_clients, #drop_dataset, #find, #initialize, #ordered_system_id_queries, #recreate_dataset, #retrieve_dataset_indexes, #save, #transform_to_query, try_create_db, #update_settings
Instance Method Details
#dump(base_folder:, read_dataset_idx:) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/dataflow/adapters/psql_adapter.rb', line 28
def dump(base_folder:, read_dataset_idx:)
archive_path = "#{base_folder}/#{@settings.db_name}/#{@settings.dataset_name}.#{read_dataset_idx}.dump"
options = "--table=public.#{@settings.read_dataset_name} "
options += "--host=#{@settings.db_host} " if @settings.db_host.present?
options += "--port=#{@settings.db_port} " if @settings.db_port.present?
options += "--username=#{@settings.db_user} " if @settings.db_user.present?
password = "PGPASSWORD=#{@settings.db_password} " if @settings.db_password.present?
`mkdir -p #{base_folder}/#{@settings.db_name}`
`#{password}pg_dump #{options} -Fc #{@settings.db_name} > #{archive_path}`
archive_path
end
|
#regex_case_insensitive_op ⇒ Object
24
25
26
|
# File 'lib/dataflow/adapters/psql_adapter.rb', line 24
def regex_case_insensitive_op
'~*'
end
|
#regex_case_senstive_op ⇒ Object
20
21
22
|
# File 'lib/dataflow/adapters/psql_adapter.rb', line 20
def regex_case_senstive_op
'~'
end
|
#restore(filepath:, dataset_name:) ⇒ Object
41
42
43
44
45
46
47
48
49
|
# File 'lib/dataflow/adapters/psql_adapter.rb', line 41
def restore(filepath:, dataset_name:)
options = "-v --clean --if-exists --no-owner "
options += "--host=#{@settings.db_host} " if @settings.db_host.present?
options += "--port=#{@settings.db_port} " if @settings.db_port.present?
options += "--username=#{@settings.db_user} --role=#{@settings.db_user} " if @settings.db_user.present?
password = "PGPASSWORD=#{@settings.db_password} " if @settings.db_password.present?
`#{password}pg_restore #{options} -Fc --dbname=#{@settings.db_name} #{filepath}`
end
|
#usage(dataset:) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/dataflow/adapters/psql_adapter.rb', line 7
def usage(dataset:)
size = client["SELECT pg_relation_size('#{dataset}') as size"].first[:size]
{
memory: size,
storage: size
}
rescue Sequel::DatabaseError
{
memory: 0,
storage: 0
}
end
|