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, #save, #transform_to_query, try_create_db, #update_settings, #usage
Instance Method Details
#dump(base_folder:) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/dataflow/adapters/psql_adapter.rb', line 28
def dump(base_folder:)
archive_path = "#{base_folder}/#{@settings.db_name}.#{@settings.dataset_name}.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}`
`#{password}pg_dump #{options} -Fc #{@settings.db_name} > #{archive_path}`
archive_path
end
|
#fetch_table_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 fetch_table_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
|
#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:) ⇒ Object
40
41
42
43
44
45
46
47
48
|
# File 'lib/dataflow/adapters/psql_adapter.rb', line 40
def restore(filepath:)
options = "--table=#{@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?
p "#{password}pg_restore #{options} -Fc --dbname=#{@settings.db_name} #{filepath}"
`#{password}pg_restore #{options} -Fc --dbname=#{@settings.db_name} #{filepath}`
end
|