data_migrator 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 328f33efadf003ef2ef20398248f03201d81f39e
4
- data.tar.gz: 70d2bdeffe3a76d47d64b6d645c598280fe0484a
3
+ metadata.gz: ac1182988cd87a3abf3a2a8ac483790e458809ae
4
+ data.tar.gz: f123784895f973a10cbe187627e41a923bb316dd
5
5
  SHA512:
6
- metadata.gz: 5d4fc77bbf7e97f6151d0af5700cc38fa1138cbf8635b0cb4f7f47e9b224ee953cc2de315997909c03226c70a617b49dd3fe737fb99cf3a03397d1004cfef1bd
7
- data.tar.gz: 2385828c73f1e4a3e2afa4100f43c7338735b5bdd9d5aa0371311eb1f5f1af80d21ad044f0eb18cf5354de9fe0c39471e2e83cfddab1dd0720475b702384e06e
6
+ metadata.gz: c2b440527b64f4e41c73c0948b9ac3154acaf93dc6e860d21490f15064b8322a13f3f6ef05e107e269f754ca61929aa496fb141a8864cd2ebf941653330d6ecb
7
+ data.tar.gz: d85dc76088913b6ce36ecab33f2c47de741b83b62c6e1852b4e3f6ed0c237e1c0900f707defebffe32cd9e2885ef83f72d8bcc73cbe803e59fb8f3156ef0f974
@@ -1,10 +1,10 @@
1
1
  require "benchmark"
2
- require 'extensions/railties/engine'
3
- require 'extensions/railties/engine/configuration'
2
+ require "extensions/railties/engine"
3
+ require "extensions/railties/engine/configuration"
4
4
 
5
5
  class DataMigrationTask < Rails::Railtie
6
6
  rake_tasks do
7
- Dir[File.join(File.dirname(__FILE__), 'tasks/*.rake')].each { |f| load f }
7
+ Dir[File.join(File.dirname(__FILE__), "tasks/*.rake")].each { |f| load f }
8
8
  end
9
9
  end
10
10
 
@@ -18,7 +18,7 @@ module RussellEdge
18
18
  end
19
19
 
20
20
  def migrations(path)
21
- files = Dir["#{path}/**/[0-9]*_*.rb" ]
21
+ files = Dir["#{path}/**/[0-9]*_*.rb"]
22
22
 
23
23
  seen = Hash.new false
24
24
 
@@ -37,7 +37,7 @@ module RussellEdge
37
37
  {:name => name, :filename => file, :version => version, :scope => scope}
38
38
  end
39
39
 
40
- migrations.sort_by{|h| h[:version]}
40
+ migrations.sort_by { |h| h[:version] }
41
41
  end
42
42
 
43
43
  def next_migration_number(number)
@@ -46,7 +46,7 @@ module RussellEdge
46
46
 
47
47
  def initialize_data_migrations_table
48
48
  puts "** data_migrations table missing creating now...."
49
- puts ActiveRecord::Migrator.run(:up, File.join(File.dirname(__FILE__), '../db/migrate/'), 20100819181805)
49
+ puts ActiveRecord::Migrator.run(:up, File.join(File.dirname(__FILE__), "../db/migrate/"), 20100819181805)
50
50
  puts "** done"
51
51
  end
52
52
 
@@ -64,7 +64,7 @@ module RussellEdge
64
64
 
65
65
  if duplicate = destination_migrations.detect { |m| m[:name] == migration[:name] }
66
66
  if options[:refresh] && duplicate[:scope] == scope.to_s
67
- Dir.glob(File.join(destination,"*_#{migration[:name].underscore}.#{scope.to_s}.rb")).each { |f| puts "Removing old migration #{migration[:name]}"; File.delete(f) }
67
+ Dir.glob(File.join(destination, "*_#{migration[:name].underscore}.#{scope.to_s}.rb")).each { |f| puts "Removing old migration #{migration[:name]}"; File.delete(f) }
68
68
  elsif options[:on_skip] && duplicate[:scope] != scope.to_s
69
69
  options[:on_skip].call(scope, migration)
70
70
  end
@@ -85,14 +85,13 @@ module RussellEdge
85
85
 
86
86
  copied
87
87
  end
88
-
89
88
  end
90
89
 
91
- def initialize(migrations_path=nil)
90
+ def initialize(migrations_path = nil)
92
91
  @default_migrations_path = migrations_path || "#{Rails.root}/db/data_migrations"
93
92
  end
94
93
 
95
- def migrate(passed_location=nil, passed_version=nil)
94
+ def migrate(passed_location = nil, passed_version = nil)
96
95
  setup
97
96
 
98
97
  location = passed_location.nil? ? @default_migrations_path : passed_location
@@ -121,13 +120,27 @@ module RussellEdge
121
120
  def get_current_version
122
121
  result = ActiveRecord::Base.connection.select_all("select max(version) as current_version from data_migrations")
123
122
 
124
- current_version = result[0]['current_version'] unless result == -1
123
+ current_version = result[0]["current_version"] unless result == -1
125
124
 
126
125
  current_version = current_version.to_i unless current_version.nil?
127
126
 
128
127
  current_version
129
128
  end
130
129
 
130
+ def run_up_without_migration
131
+ versions = []
132
+ files = get_all_files
133
+ files.each do |file|
134
+ filename, version, klass_name = separate_file_parts(file)
135
+ unless version_has_been_migrated?(version)
136
+ insert_migration_version(version)
137
+ versions << version
138
+ end
139
+ end
140
+
141
+ versions
142
+ end
143
+
131
144
  def run_up(passed_version)
132
145
  setup
133
146
 
@@ -145,7 +158,6 @@ module RussellEdge
145
158
  end
146
159
 
147
160
  puts "** Version #{passed_version} not found" unless found
148
-
149
161
  end
150
162
 
151
163
  def run_down(passed_version)
@@ -165,7 +177,6 @@ module RussellEdge
165
177
  end
166
178
 
167
179
  puts "** Version #{passed_version} not found" unless found
168
-
169
180
  end
170
181
 
171
182
  private
@@ -176,7 +187,7 @@ module RussellEdge
176
187
  unless File.directory? @default_migrations_path
177
188
  FileUtils.mkdir_p(@default_migrations_path)
178
189
  #create ignore folder
179
- FileUtils.mkdir_p(File.join(@default_migrations_path, 'ignore/'))
190
+ FileUtils.mkdir_p(File.join(@default_migrations_path, "ignore/"))
180
191
  end
181
192
  end
182
193
 
@@ -191,7 +202,6 @@ module RussellEdge
191
202
  end
192
203
  end
193
204
  end
194
-
195
205
  end
196
206
 
197
207
  def run_all_non_migrated(passed_version)
@@ -216,7 +226,6 @@ module RussellEdge
216
226
  handle_action(file, klass_name, version, :down) if version_has_been_migrated?(version)
217
227
  end
218
228
  end
219
-
220
229
  end
221
230
 
222
231
  def handle_action(file, klass_name, version, action)
@@ -251,7 +260,7 @@ module RussellEdge
251
260
 
252
261
  db_result = ActiveRecord::Base.connection.select_all("select count(*) as num_rows from data_migrations where version = '#{version}'")
253
262
 
254
- num_rows = db_result[0]['num_rows'] unless db_result == -1
263
+ num_rows = db_result[0]["num_rows"] unless db_result == -1
255
264
 
256
265
  result = false if (num_rows.nil? || num_rows.to_i == 0)
257
266
  result
@@ -259,15 +268,15 @@ module RussellEdge
259
268
 
260
269
  def data_migrations_table_exists?
261
270
  table_names = ActiveRecord::Base.connection.tables
262
- table_names.include?('data_migrations')
271
+ table_names.include?("data_migrations")
263
272
  end
264
273
 
265
274
  def separate_file_parts(file)
266
- paths = file.split('/')
275
+ paths = file.split("/")
267
276
  filename = paths[paths.length - 1]
268
- version = filename.split('_')[0]
277
+ version = filename.split("_")[0]
269
278
  klass_name = filename.gsub(/#{version}/, "").gsub(/\.rb/, "")[1..filename.length]
270
- klass_name = klass_name.split('.')[0] if klass_name.split('.').length > 1 #check for scope of engine name
279
+ klass_name = klass_name.split(".")[0] if klass_name.split(".").length > 1 #check for scope of engine name
271
280
 
272
281
  return filename, version.to_i, klass_name
273
282
  end
@@ -276,12 +285,10 @@ module RussellEdge
276
285
  files = []
277
286
 
278
287
  if File.directory? @default_migrations_path
279
-
280
288
  files_or_directories = Dir.entries(@default_migrations_path).map { |directory| directory }
281
289
 
282
290
  files_or_directories.delete_if { |name| name =~ REMOVE_FILES_REGEX } #remove any file leading with . or ..
283
- files_or_directories.delete_if { |name| name == 'ignore' } #ignore the ignore folder
284
-
291
+ files_or_directories.delete_if { |name| name == "ignore" } #ignore the ignore folder
285
292
 
286
293
  files_or_directories.each do |file_or_directory|
287
294
  file_or_directory = @default_migrations_path + "/" + file_or_directory
@@ -299,7 +306,7 @@ module RussellEdge
299
306
  files_or_directories = Dir.entries(file_or_directory).map { |directory| directory }
300
307
 
301
308
  files_or_directories.delete_if { |name| name =~ REMOVE_FILES_REGEX } #remove any file leading with . or ..
302
- files_or_directories.delete_if { |name| name == 'ignore' } #ignore the ignore folder
309
+ files_or_directories.delete_if { |name| name == "ignore" } #ignore the ignore folder
303
310
 
304
311
  files_or_directories.each do |_file_or_directory|
305
312
  _file_or_directory = file_or_directory + "/" + _file_or_directory
@@ -1,9 +1,9 @@
1
1
  module DataMigrator
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 3
4
- MINOR = 0
5
- TINY = 0
4
+ MINOR = 1
5
+ TINY = 0
6
6
 
7
- STRING = [MAJOR, MINOR, TINY].compact.join('.')
7
+ STRING = [MAJOR, MINOR, TINY].compact.join(".")
8
8
  end
9
9
  end
@@ -1,5 +1,5 @@
1
1
  namespace :db do
2
- desc 'migrates data into database'
2
+ desc "migrates data into database"
3
3
  task :migrate_data => :environment do
4
4
  passed_version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
5
5
 
@@ -7,7 +7,7 @@ namespace :db do
7
7
 
8
8
  Rake::Task["db:schema:dump"].reenable
9
9
  Rake::Task["db:schema:dump"].invoke
10
- end#end migrate_data task
10
+ end #end migrate_data task
11
11
 
12
12
  namespace :migrate_data do
13
13
  task :list_pending => :environment do
@@ -15,12 +15,12 @@ namespace :db do
15
15
  puts "================Pending Data Migrations=========="
16
16
  puts pending_migrations
17
17
  puts "================================================="
18
- end#end list_pending task
18
+ end #end list_pending task
19
19
 
20
20
  task :version => :environment do
21
21
  version = RussellEdge::DataMigrator.new.get_current_version
22
22
  puts (version.nil?) ? "** No migrations ran" : "** Current version #{version}"
23
- end#end version task
23
+ end #end version task
24
24
 
25
25
  task :up => :environment do
26
26
  passed_version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
@@ -30,7 +30,7 @@ namespace :db do
30
30
 
31
31
  Rake::Task["db:schema:dump"].reenable
32
32
  Rake::Task["db:schema:dump"].invoke
33
- end#end up task
33
+ end #end up task
34
34
 
35
35
  task :down => :environment do
36
36
  passed_version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
@@ -40,24 +40,31 @@ namespace :db do
40
40
 
41
41
  Rake::Task["db:schema:dump"].reenable
42
42
  Rake::Task["db:schema:dump"].invoke
43
- end#end down task
44
- end#end namespace
43
+ end #end down task
44
+
45
+ task :up_without_running => :environment do
46
+ versions = RussellEdge::DataMigrator.new.run_up_without_migration
47
+ puts "================Up Without Running Data Migrations=========="
48
+ puts versions
49
+ puts "================================================="
50
+ end #up without running
51
+ end #end namespace
45
52
  end
46
53
 
47
54
  namespace :railties do
48
55
  namespace :install do
49
56
  # desc "Copies missing data_migrations from Railties (e.g. plugins, engines). You can specify Railties to use with FROM=railtie1,railtie2"
50
57
  task :data_migrations => :environment do
51
- to_load = ENV['FROM'].blank? ? :all : ENV['FROM'].split(",").map {|n| n.strip }
58
+ to_load = ENV["FROM"].blank? ? :all : ENV["FROM"].split(",").map { |n| n.strip }
52
59
  #added to allow developer to perserve timestamps
53
- preserve_timestamp = ENV['PRESERVE_TIMESTAMPS'].blank? ? false : (ENV['PRESERVE_TIMESTAMPS'].to_s.downcase == "true")
60
+ preserve_timestamp = ENV["PRESERVE_TIMESTAMPS"].blank? ? false : (ENV["PRESERVE_TIMESTAMPS"].to_s.downcase == "true")
54
61
  #refresh will replace migrations from engines
55
- refresh = ENV['REFRESH'].blank? ? false : (ENV['REFRESH'].to_s.downcase == "true")
62
+ refresh = ENV["REFRESH"].blank? ? false : (ENV["REFRESH"].to_s.downcase == "true")
56
63
  railties = ActiveSupport::OrderedHash.new
57
64
  Rails.application.railties.each do |railtie|
58
65
  next unless to_load == :all || to_load.include?(railtie.railtie_name)
59
66
 
60
- if railtie.respond_to?(:paths) && (path = railtie.paths['db/data_migrations'].first)
67
+ if railtie.respond_to?(:paths) && (path = railtie.paths["db/data_migrations"].first)
61
68
  railties[railtie.railtie_name] = path
62
69
  end
63
70
  end
@@ -76,6 +83,5 @@ namespace :railties do
76
83
  :preserve_timestamp => preserve_timestamp,
77
84
  :refresh => refresh)
78
85
  end #data_migrations
79
-
80
86
  end #install
81
87
  end #railties
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_migrator
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Russell Holmes, Adam Hull
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-03 00:00:00.000000000 Z
11
+ date: 2018-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -63,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
63
  version: '0'
64
64
  requirements: []
65
65
  rubyforge_project:
66
- rubygems_version: 2.6.13
66
+ rubygems_version: 2.4.5.1
67
67
  signing_key:
68
68
  specification_version: 4
69
69
  summary: Creates Data Migrations for data similar to schema migrations.