pg_tasks 1.3.3 → 2.0.0.pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/pg_tasks/version.rb +1 -1
- data/lib/pg_tasks.rb +26 -29
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 624d4e26327ef5a1005ff2b0d796504def390bc5
|
4
|
+
data.tar.gz: 55ab7b8400af50cb1f082b616ab4d2c267264831
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1460d625e02201f3ddb3619818cfd50af043fc1df7ed5345e81bf5e3fc76c86481929bfe8d6650e57c6764092b421326c2f35120464ec4bae39246f38c800d9
|
7
|
+
data.tar.gz: 78c658fbf4d5684a5a9a0edd99d06edf63fe8d2ac897ae50bbf64a307e35be40bd8c994710c93a4dea873de4e9a0076eb52b270299a58e9ca47ba77b31aa3511
|
data/lib/pg_tasks/version.rb
CHANGED
data/lib/pg_tasks.rb
CHANGED
@@ -16,12 +16,12 @@ module PgTasks
|
|
16
16
|
DEFAULT_BINARY_STRUCTURE_AND_DATA_FILE_NAME = 'structure_and_data.pgbin'
|
17
17
|
|
18
18
|
class << self
|
19
|
-
%w(
|
19
|
+
%w(data_restore).each do |method_name|
|
20
20
|
define_method method_name do |filename = nil|
|
21
21
|
ActiveRecord::Tasks::DatabaseTasks \
|
22
22
|
.perform_pg_db_task_for_config_and_filename \
|
23
23
|
method_name, current_config,
|
24
|
-
|
24
|
+
filename_or_default_binary_structure_and_data_file(filename)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -53,12 +53,6 @@ module PgTasks
|
|
53
53
|
ActiveRecord::Tasks::DatabaseTasks.current_config
|
54
54
|
end
|
55
55
|
|
56
|
-
def filename_or_default_binary_data_file(filename)
|
57
|
-
(filename.present? && filename) || \
|
58
|
-
File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir,
|
59
|
-
DEFAULT_BINARY_DATA_FILE_NAME)
|
60
|
-
end
|
61
|
-
|
62
56
|
def filename_or_default_binary_structure_and_data_file(filename)
|
63
57
|
(filename.present? && filename) || \
|
64
58
|
File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir,
|
@@ -70,30 +64,33 @@ end
|
|
70
64
|
module ActiveRecord
|
71
65
|
module Tasks
|
72
66
|
class PostgreSQLDatabaseTasks
|
73
|
-
def data_dump(filename)
|
74
|
-
set_psql_env
|
75
|
-
command = 'pg_dump -F c -a -T schema_migrations -x -O -f ' \
|
76
|
-
"#{Shellwords.escape(filename.to_s)} " \
|
77
|
-
"#{Shellwords.escape(configuration['database'])}"
|
78
|
-
unless Kernel.system(command)
|
79
|
-
raise 'Error during data_dump'
|
80
|
-
else
|
81
|
-
$stdout.puts "The data of '#{configuration['database']} " \
|
82
|
-
"has been dumped to '#{filename}'"
|
83
|
-
end
|
84
|
-
end
|
85
67
|
|
86
68
|
def data_restore(filename)
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
69
|
+
shell_filename= Shellwords.escape filename.to_s
|
70
|
+
list_cmd = "pg_restore -l #{shell_filename}"
|
71
|
+
pg_list = `#{list_cmd}`
|
72
|
+
raise "Command #{list_cmd} failed " if $?.exitstatus != 0
|
73
|
+
restore_list = pg_list.split(/\n/) \
|
74
|
+
.reject{|l| l =~ /TABLE DATA .* schema_migrations/}.join("\n")
|
75
|
+
begin
|
76
|
+
restore_list_file = Tempfile.new 'pg_restore_list'
|
77
|
+
restore_list_file.write restore_list
|
78
|
+
set_psql_env
|
79
|
+
command = 'pg_restore --data-only --exit-on-error ' \
|
80
|
+
' --single-transaction --no-privileges --no-owner ' \
|
81
|
+
' --disable-trigger ' \
|
82
|
+
" -L #{restore_list_file.path} " \
|
83
|
+
" -d #{Shellwords.escape(configuration['database'])} " \
|
84
|
+
" #{shell_filename }"
|
85
|
+
unless Kernel.system(command)
|
86
|
+
raise 'Error during data_restore '
|
87
|
+
else
|
88
|
+
$stdout.puts "Data from '#{filename}' has been restored to \
|
96
89
|
'#{configuration['database']}'"
|
90
|
+
end
|
91
|
+
ensure
|
92
|
+
restore_list_file.close
|
93
|
+
restore_list_file.unlink
|
97
94
|
end
|
98
95
|
end
|
99
96
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Schank
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -86,12 +86,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
86
86
|
version: '0'
|
87
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- - "
|
89
|
+
- - ">"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
91
|
+
version: 1.3.1
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.4.
|
94
|
+
rubygems_version: 2.4.5.1
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: PostgreSQL Tasks and Functions for Ruby on Rails
|