pg_tasks 1.0.1 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5fcc8c4ebd3261bb86e000784e251573fe277d3
4
- data.tar.gz: a1eacb6d11cbc6fe09042a92c82fa1343c4c648e
3
+ metadata.gz: fc265a9b51988c66412de5651644fe6427761bd0
4
+ data.tar.gz: 7326fe644b0d418c17707e6f80600c3554ba9c61
5
5
  SHA512:
6
- metadata.gz: 2fd7aa59f705bff7d9709290ab2be2b81b1305f18d6ecf5ed9bec0bd9bd71c64c2bf69a50dd5e312cbd133a77d64c9acbfa198e2407e1bb6cfe62f7ec582d92b
7
- data.tar.gz: eca219a82b9e75fc951ecc41d29e38fbdfafe25555f5af1604a24dcb0c8ae811fac0509c015792f9588fb2bb31a53025b8008131fd1fe8f6eeea6fe1bf3ba071
6
+ metadata.gz: b005994e668eb75f856f12ad35b17d671cea87a31779ee6bd519a7035147b01dd478f95d150f800e0b4faee7920858e50dd1289403c08ea21c4e0d7e99a826a7
7
+ data.tar.gz: 5bfd6120421f4f5606a274e7840c23c474846eaed9150d04e60b898c594d068f9bcb02b1d0415c959e504c84a5df5317d8e709f5ccb68f50ce19b36b4c974462
data/Rakefile CHANGED
@@ -14,6 +14,4 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
15
15
  end
16
16
 
17
-
18
17
  Bundler::GemHelper.install_tasks
19
-
@@ -1,8 +1,8 @@
1
1
  #--
2
2
  # Copyright (c) 2015 Thomas Schank
3
3
  #
4
- # Released to the public under the terms of the MIT license.
5
- # See MIT-LICENSE.
4
+ # Released to the public under the terms of the MIT license.
5
+ # See MIT-LICENSE.
6
6
  #
7
7
  #++
8
8
 
@@ -1,11 +1,11 @@
1
1
  #--
2
2
  # Copyright (c) 2015 Thomas Schank
3
3
  #
4
- # Released to the public under the terms of the MIT license.
5
- # See MIT-LICENSE.
4
+ # Released to the public under the terms of the MIT license.
5
+ # See MIT-LICENSE.
6
6
  #
7
7
  #++
8
8
 
9
9
  module PgTasks
10
- VERSION = "1.0.1"
10
+ VERSION = '1.1.0'
11
11
  end
data/lib/pg_tasks.rb CHANGED
@@ -1,23 +1,21 @@
1
1
  #--
2
2
  # Copyright (c) 2015 Thomas Schank
3
3
  #
4
- # Released to the public under the terms of the MIT license.
5
- # See MIT-LICENSE.
4
+ # Released to the public under the terms of the MIT license.
5
+ # See MIT-LICENSE.
6
6
  #
7
7
  #++
8
-
8
+
9
9
  require 'active_record/tasks/database_tasks'
10
10
  require 'active_record/tasks/postgresql_database_tasks'
11
11
 
12
12
  module PgTasks
13
-
14
13
  require 'pg_tasks/railtie' if defined?(Rails)
15
14
 
16
15
  DEFAULT_BINARY_DATA_FILE_NAME = 'data.pgbin'
17
16
  DEFAULT_BINARY_STRUCTURE_AND_DATA_FILE_NAME = 'structure_and_data.pgbin'
18
17
 
19
18
  class << self
20
-
21
19
  %w(data_dump data_restore).each do |method_name|
22
20
  define_method method_name do |filename = nil|
23
21
  ActiveRecord::Tasks::DatabaseTasks \
@@ -29,17 +27,17 @@ module PgTasks
29
27
 
30
28
  %w(structure_and_data_dump structure_and_data_restore).each do |method_name|
31
29
  define_method method_name do |filename = nil|
32
- ActiveRecord::Tasks::DatabaseTasks \
33
- .perform_pg_db_task_for_config_and_filename \
34
- method_name, current_config,
35
- filename_or_default_binary_structure_and_data_file(filename)
30
+ ActiveRecord::Tasks::DatabaseTasks \
31
+ .perform_pg_db_task_for_config_and_filename \
32
+ method_name, current_config,
33
+ filename_or_default_binary_structure_and_data_file(filename)
36
34
  end
37
35
  end
38
36
 
39
37
  def truncate_tables
40
38
  ActiveRecord::Base.connection.tap do |connection|
41
39
  connection.tables.reject { |tn| tn == 'schema_migrations' }
42
- .join(', ').tap do |tables|
40
+ .join(', ').tap do |tables|
43
41
  connection.execute " TRUNCATE TABLE #{tables} CASCADE; "
44
42
  end
45
43
  end
@@ -62,32 +60,37 @@ module PgTasks
62
60
  File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir,
63
61
  DEFAULT_BINARY_STRUCTURE_AND_DATA_FILE_NAME)
64
62
  end
65
-
66
63
  end
67
64
  end
68
65
 
69
66
  module ActiveRecord
70
67
  module Tasks
71
68
  class PostgreSQLDatabaseTasks
72
-
73
69
  def data_dump(filename)
74
70
  set_psql_env
75
71
  command = 'pg_dump -F c -a -T schema_migrations -x -O -f ' \
76
72
  "#{Shellwords.escape(filename)} " \
77
73
  "#{Shellwords.escape(configuration['database'])}"
78
- raise 'Error during data_dump' unless Kernel.system(command)
79
- $stdout.puts "The data of '#{configuration['database']} " \
80
- "has been dumped to '#{filename}'"
74
+ unless Kernel.system(command)
75
+ raise 'Error during data_dump'
76
+ else
77
+ $stdout.puts "The data of '#{configuration['database']} " \
78
+ "has been dumped to '#{filename}'"
79
+ end
81
80
  end
82
81
 
83
82
  def data_restore(filename)
84
83
  set_psql_env
85
- command = 'pg_restore --disable-triggers -a -x -O -d ' \
86
- "#{Shellwords.escape(configuration['database'])} " \
84
+ command = 'pg_restore --disable-triggers ' \
85
+ '--single-transaction -a -x -O ' \
86
+ "-d #{Shellwords.escape(configuration['database'])} " \
87
87
  "#{Shellwords.escape(filename)}"
88
- raise 'Error during data_restore ' unless Kernel.system(command)
89
- $stdout.puts "Data from '#{filename}' has been restored to \
88
+ unless Kernel.system(command)
89
+ raise 'Error during data_restore '
90
+ else
91
+ $stdout.puts "Data from '#{filename}' has been restored to \
90
92
  '#{configuration['database']}'"
93
+ end
91
94
  end
92
95
 
93
96
  def structure_and_data_dump(filename)
@@ -105,7 +108,7 @@ module ActiveRecord
105
108
 
106
109
  def structure_and_data_restore(filename)
107
110
  set_psql_env
108
- command = 'pg_restore --disable-triggers -x -O -d ' \
111
+ command = 'pg_restore --disable-triggers --single-transaction -x -O -d ' \
109
112
  "#{Shellwords.escape(configuration['database'])} " \
110
113
  "#{Shellwords.escape(filename)}"
111
114
  unless Kernel.system(command)
@@ -115,7 +118,6 @@ module ActiveRecord
115
118
  "has been restored to '#{filename}'"
116
119
  end
117
120
  end
118
-
119
121
  end
120
122
  end
121
123
  end
@@ -123,7 +125,6 @@ end
123
125
  module ActiveRecord
124
126
  module Tasks
125
127
  module DatabaseTasks
126
-
127
128
  def perform_pg_db_task_for_config_and_filename(task_name, *arguments)
128
129
  configuration = arguments.first
129
130
  filename = arguments.delete_at 1
@@ -134,7 +135,6 @@ module ActiveRecord
134
135
  rescue Exception => error
135
136
  $stderr.puts error, *(error.backtrace)
136
137
  end
137
-
138
138
  end
139
139
  end
140
140
  end
@@ -1,23 +1,20 @@
1
1
  #--
2
2
  # Copyright (c) 2015 Thomas Schank
3
3
  #
4
- # Released to the public under the terms of the MIT license.
5
- # See MIT-LICENSE.
4
+ # Released to the public under the terms of the MIT license.
5
+ # See MIT-LICENSE.
6
6
  #
7
7
  #++
8
8
 
9
9
  require 'pg_tasks'
10
10
 
11
11
  namespace :db do
12
-
13
12
  namespace :pg do
14
-
15
13
  task truncate_tables: [:environment, :load_config] do
16
14
  PgTasks.truncate_tables
17
15
  end
18
16
 
19
17
  namespace :data do
20
-
21
18
  task dump: [:environment, :load_config] do
22
19
  PgTasks.data_dump ENV['FILE']
23
20
  end
@@ -25,11 +22,9 @@ namespace :db do
25
22
  task restore: [:environment, :load_config] do
26
23
  PgTasks.data_restore ENV['FILE']
27
24
  end
28
-
29
25
  end
30
26
 
31
27
  namespace :structure_and_data do
32
-
33
28
  task dump: [:environment, :load_config] do
34
29
  PgTasks.structure_and_data_dump ENV['FILE']
35
30
  end
@@ -37,9 +32,6 @@ namespace :db do
37
32
  task restore: [:environment, :load_config] do
38
33
  PgTasks.structure_and_data_restore ENV['FILE']
39
34
  end
40
-
41
35
  end
42
-
43
36
  end
44
-
45
37
  end
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: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Schank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-11 00:00:00.000000000 Z
11
+ date: 2015-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rubocop
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
47
61
  description:
48
62
  email:
49
63
  - DrTom@schank.ch