data_migrate 9.2.0 → 11.2.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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +36 -0
  3. data/README.md +20 -13
  4. data/lib/data_migrate/data_migrator.rb +5 -1
  5. data/lib/data_migrate/data_schema.rb +6 -6
  6. data/lib/data_migrate/database_configurations_wrapper.rb +11 -0
  7. data/lib/data_migrate/database_tasks.rb +218 -58
  8. data/lib/data_migrate/rails_helper.rb +15 -3
  9. data/lib/data_migrate/tasks/data_migrate_tasks.rb +8 -6
  10. data/lib/data_migrate/version.rb +1 -1
  11. data/lib/data_migrate.rb +1 -0
  12. data/lib/generators/data_migration/data_migration_generator.rb +2 -1
  13. data/tasks/databases.rake +9 -46
  14. metadata +8 -52
  15. data/.github/workflows/build.yml +0 -34
  16. data/.github/workflows/gempush.yml +0 -28
  17. data/.gitignore +0 -12
  18. data/.hound.yml +0 -4
  19. data/.overcommit.yml +0 -21
  20. data/.rbenv-gemsets +0 -2
  21. data/.rspec +0 -3
  22. data/.rubocop.yml +0 -2
  23. data/.ruby-style.yml +0 -1061
  24. data/Appraisals +0 -11
  25. data/Gemfile +0 -4
  26. data/Gemfile.lock +0 -148
  27. data/Gemfile.rails6.1 +0 -11
  28. data/Rakefile +0 -2
  29. data/data_migrate.gemspec +0 -41
  30. data/gemfiles/rails_6.1.gemfile +0 -8
  31. data/gemfiles/rails_6.1.gemfile.lock +0 -227
  32. data/gemfiles/rails_7.0.gemfile +0 -8
  33. data/gemfiles/rails_7.0.gemfile.lock +0 -229
  34. data/gemfiles/rails_7.1.gemfile +0 -8
  35. data/gemfiles/rails_7.1.gemfile.lock +0 -262
  36. data/screenshot.png +0 -0
  37. data/spec/data_migrate/config_spec.rb +0 -69
  38. data/spec/data_migrate/data_migrator_spec.rb +0 -83
  39. data/spec/data_migrate/data_schema_migration_spec.rb +0 -33
  40. data/spec/data_migrate/data_spec.rb +0 -74
  41. data/spec/data_migrate/database_tasks_spec.rb +0 -105
  42. data/spec/data_migrate/migration.rb +0 -17
  43. data/spec/data_migrate/migration_context_spec.rb +0 -108
  44. data/spec/data_migrate/schema_dumper_spec.rb +0 -36
  45. data/spec/data_migrate/schema_migration_spec.rb +0 -104
  46. data/spec/data_migrate/status_service_spec.rb +0 -76
  47. data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +0 -129
  48. data/spec/db/data/20091231235959_some_name.rb +0 -9
  49. data/spec/db/data/20171231235959_super_update.rb +0 -9
  50. data/spec/db/data/20181128000207_excluded_file.rb.other_ext +0 -1
  51. data/spec/db/data/partial_schema/data_schema.rb +0 -1
  52. data/spec/db/data/partial_schema/test_data_schema.rb +0 -1
  53. data/spec/db/data/schema/data_schema.rb +0 -1
  54. data/spec/db/data/schema/test_data_schema.rb +0 -1
  55. data/spec/db/migrate/20131111111111_late_migration.rb +0 -9
  56. data/spec/db/migrate/20202020202011_db_migration.rb +0 -9
  57. data/spec/generators/data_migration/data_migration_generator_spec.rb +0 -101
  58. data/spec/spec_helper.rb +0 -28
  59. data/tasks/.gitkeep +0 -0
@@ -1,262 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- data_migrate (9.2.0)
5
- activerecord (>= 6.1)
6
- railties (>= 6.1)
7
-
8
- GEM
9
- remote: http://rubygems.org/
10
- specs:
11
- actioncable (7.1.0)
12
- actionpack (= 7.1.0)
13
- activesupport (= 7.1.0)
14
- nio4r (~> 2.0)
15
- websocket-driver (>= 0.6.1)
16
- zeitwerk (~> 2.6)
17
- actionmailbox (7.1.0)
18
- actionpack (= 7.1.0)
19
- activejob (= 7.1.0)
20
- activerecord (= 7.1.0)
21
- activestorage (= 7.1.0)
22
- activesupport (= 7.1.0)
23
- mail (>= 2.7.1)
24
- net-imap
25
- net-pop
26
- net-smtp
27
- actionmailer (7.1.0)
28
- actionpack (= 7.1.0)
29
- actionview (= 7.1.0)
30
- activejob (= 7.1.0)
31
- activesupport (= 7.1.0)
32
- mail (~> 2.5, >= 2.5.4)
33
- net-imap
34
- net-pop
35
- net-smtp
36
- rails-dom-testing (~> 2.2)
37
- actionpack (7.1.0)
38
- actionview (= 7.1.0)
39
- activesupport (= 7.1.0)
40
- nokogiri (>= 1.8.5)
41
- rack (>= 2.2.4)
42
- rack-session (>= 1.0.1)
43
- rack-test (>= 0.6.3)
44
- rails-dom-testing (~> 2.2)
45
- rails-html-sanitizer (~> 1.6)
46
- actiontext (7.1.0)
47
- actionpack (= 7.1.0)
48
- activerecord (= 7.1.0)
49
- activestorage (= 7.1.0)
50
- activesupport (= 7.1.0)
51
- globalid (>= 0.6.0)
52
- nokogiri (>= 1.8.5)
53
- actionview (7.1.0)
54
- activesupport (= 7.1.0)
55
- builder (~> 3.1)
56
- erubi (~> 1.11)
57
- rails-dom-testing (~> 2.2)
58
- rails-html-sanitizer (~> 1.6)
59
- activejob (7.1.0)
60
- activesupport (= 7.1.0)
61
- globalid (>= 0.3.6)
62
- activemodel (7.1.0)
63
- activesupport (= 7.1.0)
64
- activerecord (7.1.0)
65
- activemodel (= 7.1.0)
66
- activesupport (= 7.1.0)
67
- timeout (>= 0.4.0)
68
- activestorage (7.1.0)
69
- actionpack (= 7.1.0)
70
- activejob (= 7.1.0)
71
- activerecord (= 7.1.0)
72
- activesupport (= 7.1.0)
73
- marcel (~> 1.0)
74
- activesupport (7.1.0)
75
- base64
76
- bigdecimal
77
- concurrent-ruby (~> 1.0, >= 1.0.2)
78
- connection_pool (>= 2.2.5)
79
- drb
80
- i18n (>= 1.6, < 2)
81
- minitest (>= 5.1)
82
- mutex_m
83
- tzinfo (~> 2.0)
84
- appraisal (2.5.0)
85
- bundler
86
- rake
87
- thor (>= 0.14.0)
88
- ast (2.4.2)
89
- base64 (0.1.1)
90
- bigdecimal (3.1.4)
91
- builder (3.2.4)
92
- childprocess (4.1.0)
93
- coderay (1.1.3)
94
- concurrent-ruby (1.2.2)
95
- connection_pool (2.4.1)
96
- crass (1.0.6)
97
- date (3.3.3)
98
- diff-lcs (1.5.0)
99
- drb (2.1.1)
100
- ruby2_keywords
101
- erubi (1.12.0)
102
- globalid (1.2.1)
103
- activesupport (>= 6.1)
104
- i18n (1.14.1)
105
- concurrent-ruby (~> 1.0)
106
- iniparse (1.5.0)
107
- io-console (0.6.0)
108
- irb (1.8.1)
109
- rdoc
110
- reline (>= 0.3.8)
111
- json (2.6.3)
112
- language_server-protocol (3.17.0.3)
113
- loofah (2.21.3)
114
- crass (~> 1.0.2)
115
- nokogiri (>= 1.12.0)
116
- mail (2.8.1)
117
- mini_mime (>= 0.1.1)
118
- net-imap
119
- net-pop
120
- net-smtp
121
- marcel (1.0.2)
122
- method_source (1.0.0)
123
- mini_mime (1.1.5)
124
- minitest (5.20.0)
125
- mutex_m (0.1.2)
126
- net-imap (0.4.0)
127
- date
128
- net-protocol
129
- net-pop (0.1.2)
130
- net-protocol
131
- net-protocol (0.2.1)
132
- timeout
133
- net-smtp (0.4.0)
134
- net-protocol
135
- nio4r (2.5.9)
136
- nokogiri (1.15.4-arm64-darwin)
137
- racc (~> 1.4)
138
- nokogiri (1.15.4-x86_64-linux)
139
- racc (~> 1.4)
140
- overcommit (0.60.0)
141
- childprocess (>= 0.6.3, < 5)
142
- iniparse (~> 1.4)
143
- rexml (~> 3.2)
144
- parallel (1.23.0)
145
- parser (3.2.2.3)
146
- ast (~> 2.4.1)
147
- racc
148
- pry (0.14.2)
149
- coderay (~> 1.1)
150
- method_source (~> 1.0)
151
- psych (5.1.0)
152
- stringio
153
- racc (1.7.1)
154
- rack (3.0.8)
155
- rack-session (2.0.0)
156
- rack (>= 3.0.0)
157
- rack-test (2.1.0)
158
- rack (>= 1.3)
159
- rackup (2.1.0)
160
- rack (>= 3)
161
- webrick (~> 1.8)
162
- rails (7.1.0)
163
- actioncable (= 7.1.0)
164
- actionmailbox (= 7.1.0)
165
- actionmailer (= 7.1.0)
166
- actionpack (= 7.1.0)
167
- actiontext (= 7.1.0)
168
- actionview (= 7.1.0)
169
- activejob (= 7.1.0)
170
- activemodel (= 7.1.0)
171
- activerecord (= 7.1.0)
172
- activestorage (= 7.1.0)
173
- activesupport (= 7.1.0)
174
- bundler (>= 1.15.0)
175
- railties (= 7.1.0)
176
- rails-dom-testing (2.2.0)
177
- activesupport (>= 5.0.0)
178
- minitest
179
- nokogiri (>= 1.6)
180
- rails-html-sanitizer (1.6.0)
181
- loofah (~> 2.21)
182
- nokogiri (~> 1.14)
183
- railties (7.1.0)
184
- actionpack (= 7.1.0)
185
- activesupport (= 7.1.0)
186
- irb
187
- rackup (>= 1.0.0)
188
- rake (>= 12.2)
189
- thor (~> 1.0, >= 1.2.2)
190
- zeitwerk (~> 2.6)
191
- rainbow (3.1.1)
192
- rake (13.0.6)
193
- rb-readline (0.5.5)
194
- rdoc (6.5.0)
195
- psych (>= 4.0.0)
196
- regexp_parser (2.8.1)
197
- reline (0.3.9)
198
- io-console (~> 0.5)
199
- rexml (3.2.5)
200
- rspec (3.12.0)
201
- rspec-core (~> 3.12.0)
202
- rspec-expectations (~> 3.12.0)
203
- rspec-mocks (~> 3.12.0)
204
- rspec-core (3.12.2)
205
- rspec-support (~> 3.12.0)
206
- rspec-expectations (3.12.3)
207
- diff-lcs (>= 1.2.0, < 2.0)
208
- rspec-support (~> 3.12.0)
209
- rspec-mocks (3.12.6)
210
- diff-lcs (>= 1.2.0, < 2.0)
211
- rspec-support (~> 3.12.0)
212
- rspec-support (3.12.1)
213
- rubocop (1.54.2)
214
- json (~> 2.3)
215
- language_server-protocol (>= 3.17.0)
216
- parallel (~> 1.10)
217
- parser (>= 3.2.2.3)
218
- rainbow (>= 2.2.2, < 4.0)
219
- regexp_parser (>= 1.8, < 3.0)
220
- rexml (>= 3.2.5, < 4.0)
221
- rubocop-ast (>= 1.28.0, < 2.0)
222
- ruby-progressbar (~> 1.7)
223
- unicode-display_width (>= 2.4.0, < 3.0)
224
- rubocop-ast (1.29.0)
225
- parser (>= 3.2.1.0)
226
- ruby-progressbar (1.13.0)
227
- ruby2_keywords (0.0.5)
228
- sqlite3 (1.6.3-arm64-darwin)
229
- sqlite3 (1.6.3-x86_64-linux)
230
- stringio (3.0.8)
231
- thor (1.2.2)
232
- timecop (0.9.6)
233
- timeout (0.4.0)
234
- tzinfo (2.0.6)
235
- concurrent-ruby (~> 1.0)
236
- unicode-display_width (2.4.2)
237
- webrick (1.8.1)
238
- websocket-driver (0.7.6)
239
- websocket-extensions (>= 0.1.0)
240
- websocket-extensions (0.1.5)
241
- zeitwerk (2.6.12)
242
-
243
- PLATFORMS
244
- arm64-darwin-22
245
- x86_64-linux
246
-
247
- DEPENDENCIES
248
- appraisal
249
- data_migrate!
250
- overcommit
251
- pry
252
- rails (= 7.1.0)
253
- rake
254
- rb-readline
255
- rspec
256
- rspec-core
257
- rubocop
258
- sqlite3 (~> 1.4)
259
- timecop
260
-
261
- BUNDLED WITH
262
- 2.4.17
data/screenshot.png DELETED
Binary file
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- describe DataMigrate::Config do
6
- it "sets default data_migrations_path path", :no_override do
7
- expect(DataMigrate.config.data_migrations_path).to eq "db/data/"
8
- end
9
-
10
- it "sets default data_template_path path", :no_override do
11
- expect(DataMigrate.config.data_template_path).to eq DataMigrate::Config::DEFAULT_DATA_TEMPLATE_PATH
12
- end
13
-
14
- describe "data migration path configured" do
15
- subject { DataMigrate.config.data_migrations_path }
16
- let(:data_migrations_path) { "db/awesome/" }
17
-
18
- before do
19
- @original_data_migrations_path = DataMigrate.config.data_migrations_path
20
-
21
- DataMigrate.configure do |config|
22
- config.data_migrations_path = data_migrations_path
23
- end
24
- end
25
-
26
- after do
27
- DataMigrate.configure do |config|
28
- config.data_migrations_path = @original_data_migrations_path
29
- end
30
- end
31
-
32
- it "equals the custom data migration path" do
33
- is_expected.to eq(data_migrations_path)
34
- end
35
- end
36
-
37
- describe "data template path configured" do
38
- subject { DataMigrate.config.data_template_path }
39
- let(:data_template_path) { File.join(DataMigrate.root, "generators", "data_migration", "templates", "data_migration.rb") }
40
-
41
- before do
42
- @original_data_migrations_path = DataMigrate.config.data_template_path
43
-
44
- DataMigrate.configure do |config|
45
- config.data_template_path = data_template_path
46
- end
47
- end
48
-
49
- after do
50
- DataMigrate.configure do |config|
51
- config.data_template_path = @original_data_migrations_path
52
- end
53
- end
54
-
55
- it "equals the custom data template path" do
56
- is_expected.to eq data_template_path
57
- end
58
-
59
- context "when path does not exist" do
60
- subject { DataMigrate.config.data_template_path = invalid_path }
61
-
62
- let(:invalid_path) { "lib/awesome/templates/data_migration.rb" }
63
-
64
- it "checks that file exists on setting config var" do
65
- expect { subject }.to raise_error { ArgumentError.new("File not found: '#{data_template_path}'") }
66
- end
67
- end
68
- end
69
- end
@@ -1,83 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- describe DataMigrate::DataMigrator do
6
- let(:described_class) { DataMigrate::DataMigrator }
7
-
8
- let(:db_config) do
9
- {
10
- adapter: "sqlite3",
11
- database: "spec/db/test.db"
12
- }
13
- end
14
-
15
- before do
16
- ActiveRecord::Base.establish_connection(db_config)
17
- DataMigrate::RailsHelper.schema_migration.create_table
18
- DataMigrate::RailsHelper.data_schema_migration.create_table
19
- end
20
-
21
- after do
22
- ActiveRecord::Migration.drop_table("data_migrations") rescue nil
23
- ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
24
- end
25
-
26
- describe ".load_migrated" do
27
- let(:migrator) { DataMigrate::RailsHelper.data_migrator(:up, []) }
28
-
29
- it "loads migrated versions" do
30
- DataMigrate::RailsHelper.data_schema_migration.create_version(20090000000000)
31
- DataMigrate::RailsHelper.schema_create_version(20100000000000)
32
- DataMigrate::RailsHelper.data_schema_migration.create_version(20110000000000)
33
- DataMigrate::RailsHelper.schema_create_version(20120000000000)
34
- migrated = migrator.load_migrated
35
- expect(migrated.count).to eq 2
36
- expect(migrated).to include 20090000000000
37
- expect(migrated).to include 20110000000000
38
- end
39
- end
40
-
41
- describe :create_data_schema_table do
42
- it "creates the data_migrations table" do
43
- ActiveRecord::Migration.drop_table("data_migrations") rescue nil
44
- described_class.create_data_schema_table
45
- expect(
46
- ActiveRecord::Base.connection.table_exists?("data_migrations")
47
- ).to eq true
48
- end
49
- end
50
-
51
- describe "#migrations_status" do
52
- it "returns all migrations statuses" do
53
- status = described_class.migrations_status
54
- expect(status.length).to eq 2
55
- expect(status.first).to eq ["down", "20091231235959", "Some name"]
56
- expect(status.second).to eq ["down", "20171231235959", "Super update"]
57
- end
58
- end
59
-
60
- describe :match do
61
- context "when the file does not match" do
62
- it "returns nil" do
63
- expect(described_class.match("not_a_data_migration_file")).to be_nil
64
- end
65
- end
66
-
67
- context "when the file doesn't end in .rb" do
68
- it "returns nil" do
69
- expect(described_class.match("20091231235959_some_name.rb.un~")).to be_nil
70
- end
71
- end
72
-
73
- context "when the file matches" do
74
- it "returns a valid MatchData object" do
75
- match_data = described_class.match("20091231235959_some_name.rb")
76
-
77
- expect(match_data[0]).to eq "20091231235959_some_name.rb"
78
- expect(match_data[1]).to eq "20091231235959"
79
- expect(match_data[2]).to eq "some_name"
80
- end
81
- end
82
- end
83
- end
@@ -1,33 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe DataMigrate::DataSchemaMigration do
4
- if DataMigrate::RailsHelper.rails_version_equal_to_or_higher_than_7_1
5
- let(:connection) { double(:connection) }
6
- let(:subject) { DataMigrate::DataSchemaMigration.new(connection) }
7
-
8
- describe :table_name do
9
- it "returns correct table name" do
10
- expect(subject.table_name).to eq("data_migrations")
11
- end
12
- end
13
-
14
- describe :index_name do
15
- it "returns correct primary key name" do
16
- expect(subject.primary_key).to eq("version")
17
- end
18
- end
19
- else
20
- let(:subject) { DataMigrate::DataSchemaMigration }
21
- describe :table_name do
22
- it "returns correct table name" do
23
- expect(subject.table_name).to eq("data_migrations")
24
- end
25
- end
26
-
27
- describe :index_name do
28
- it "returns correct primary key name" do
29
- expect(subject.primary_key).to eq("version")
30
- end
31
- end
32
- end
33
- end
@@ -1,74 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- describe DataMigrate::Data do
6
- let(:subject) { DataMigrate::Data }
7
- let(:fixture_file_timestamps) do
8
- %w[20091231235959 20101231235959 20111231235959]
9
- end
10
-
11
- around do |example|
12
- Dir.mktmpdir do |temp_dir|
13
- @temp_dir = temp_dir
14
-
15
- # create the fake data migration files
16
- fixture_file_timestamps.each do |timestamp|
17
- FileUtils.touch File.join(temp_dir, "#{timestamp}_data_migration.rb")
18
- end
19
-
20
- example.run
21
- end
22
- end
23
-
24
- describe :define do
25
- after do
26
- ActiveRecord::Migration.drop_table("data_migrations")
27
- end
28
-
29
- context "when no version is supplied" do
30
- it "returns nil" do
31
- expect(subject.define(version: nil)).to be_nil
32
- end
33
- end
34
-
35
- context "when a version is supplied" do
36
- before do
37
- allow(DataMigrate::DataMigrator).
38
- to receive(:full_migrations_path).and_return(@temp_dir)
39
- end
40
-
41
- it "sets the current version to the supplied version" do
42
- version = fixture_file_timestamps[1]
43
-
44
- expect(DataMigrate::DataMigrator.current_version).not_to eq version.to_i
45
- subject.define(version: version)
46
- expect(DataMigrate::DataMigrator.current_version).to eq version.to_i
47
- end
48
-
49
- it "creates entries for migration versions that come " \
50
- "before the supplied version" do
51
-
52
- version = fixture_file_timestamps[1]
53
-
54
- subject.define(version: version)
55
-
56
- sql_select = <<-SQL
57
- SELECT version
58
- FROM #{DataMigrate::RailsHelper.data_schema_migration.table_name}
59
- SQL
60
-
61
- db_list_data = ActiveRecord::Base.connection.
62
- select_values(sql_select).map(&:to_i)
63
- expect(db_list_data).to match_array(
64
- [fixture_file_timestamps[0], fixture_file_timestamps[1]].map(&:to_i)
65
- )
66
-
67
- # The last remaining migration (fixture_file_timestamps[2]) was
68
- # not included as part of the supplied version and so should not
69
- # appear in the data_migrations table.
70
- expect(db_list_data).not_to include(fixture_file_timestamps[2])
71
- end
72
- end
73
- end
74
- end
@@ -1,105 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- describe DataMigrate::DatabaseTasks do
6
- let(:subject) { DataMigrate::DatabaseTasks }
7
- let(:migration_path) { "spec/db/migrate" }
8
- let(:data_migrations_path) {
9
- DataMigrate.config.data_migrations_path
10
- }
11
-
12
- before do
13
- # In a normal Rails installation, db_dir would defer to
14
- # Rails.application.config.paths["db"].first
15
- # @see https://github.com/rails/rails/blob/a7d49ef78c36df2d1ca876451f30915ada1079a5/activerecord/lib/active_record/tasks/database_tasks.rb#L54
16
- allow(subject).to receive(:db_dir).and_return("db")
17
- allow(ActiveRecord::Tasks::DatabaseTasks).to receive(:db_dir).and_return("db")
18
- end
19
-
20
- before do
21
- allow(DataMigrate::Tasks::DataMigrateTasks).to receive(:migrations_paths) {
22
- data_migrations_path
23
- }
24
- ActiveRecord::Base.establish_connection({ adapter: "sqlite3", database: "spec/db/test.db" })
25
- hash_config = ActiveRecord::DatabaseConfigurations::HashConfig.new('test', 'test', { adapter: "sqlite3", database: "spec/db/test.db" })
26
- config_obj = ActiveRecord::DatabaseConfigurations.new([hash_config])
27
- allow(ActiveRecord::Base).to receive(:configurations).and_return(config_obj)
28
- end
29
-
30
- context "migrations" do
31
- after do
32
- ActiveRecord::Migration.drop_table("data_migrations") rescue nil
33
- ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
34
- end
35
-
36
- before do
37
- DataMigrate::RailsHelper.schema_migration.create_table
38
-
39
- allow(DataMigrate::SchemaMigration).to receive(:migrations_paths) {
40
- migration_path
41
- }
42
- allow(DataMigrate::DatabaseTasks).to receive(:data_migrations_path) {
43
- data_migrations_path
44
- }.at_least(:once)
45
- end
46
-
47
- describe :past_migrations do
48
- it "returns past migration records" do
49
- subject.forward
50
- migrations = subject.past_migrations
51
- expect(migrations.count).to eq 1
52
- expect(migrations.first[:version]).to eq 20091231235959
53
- end
54
-
55
- it "shows nothing without any migrations" do
56
- migrations = subject.past_migrations
57
- expect(migrations.count).to eq 0
58
- end
59
- end
60
-
61
- describe :forward do
62
- it "run forward default amount of times" do
63
- subject.forward
64
- versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
65
- expect(versions.count).to eq(1)
66
- end
67
-
68
- it "run forward defined number of times" do
69
- subject.forward(2)
70
- versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
71
- expect(versions.count).to eq(1)
72
- expect(versions.first).to eq "20091231235959"
73
- versions = DataMigrate::RailsHelper.schema_migration.normalized_versions
74
- expect(versions.count).to eq(1)
75
- expect(versions.first).to eq "20131111111111"
76
- end
77
- end
78
-
79
- if DataMigrate::RailsHelper.rails_version_equal_to_or_higher_than_7_0
80
- describe :schema_dump_path do
81
- before do
82
- allow(ActiveRecord::Base).to receive(:configurations).and_return(ActiveRecord::DatabaseConfigurations.new([db_config]))
83
- end
84
-
85
- context "for primary database" do
86
- let(:db_config) { ActiveRecord::DatabaseConfigurations::HashConfig.new("development", "primary", {} ) }
87
-
88
- context "for :ruby db format" do
89
- it 'returns the data schema path' do
90
- allow(ActiveRecord).to receive(:schema_format).and_return(:ruby)
91
- expect(subject.schema_dump_path(db_config)).to eq("db/data_schema.rb")
92
- end
93
- end
94
-
95
- context "for :sql db format" do
96
- it 'returns the data schema path' do
97
- allow(ActiveRecord).to receive(:schema_format).and_return(:sql)
98
- expect(subject.schema_dump_path(db_config, :sql)).to eq("db/data_schema.rb")
99
- end
100
- end
101
- end
102
- end
103
- end
104
- end
105
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe DataMigrate::Migration do
6
- describe ".table_name" do
7
- it "returns correct table name" do
8
- expect(subject.table_name).to eq("data_migrations")
9
- end
10
- end
11
-
12
- describe ".index_name" do
13
- it "returns correct primary key name" do
14
- expect(subject.primary_key).to eq("version")
15
- end
16
- end
17
- end