class Dataflow::Adapters::PsqlAdapter
Interface between a data node and mongodb. We use mongodb to perform all the store/retrieve operations.
Public Instance Methods
dump(base_folder:, read_dataset_idx:)
click to toggle source
# 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()
click to toggle source
# File lib/dataflow/adapters/psql_adapter.rb, line 24 def regex_case_insensitive_op '~*' end
regex_case_senstive_op()
click to toggle source
# File lib/dataflow/adapters/psql_adapter.rb, line 20 def regex_case_senstive_op '~' end
restore(filepath:, dataset_name:)
click to toggle source
# 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:)
click to toggle source
# 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