data_migrate 8.5.0 → 9.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/.github/workflows/build.yml +34 -0
  3. data/.github/workflows/gempush.yml +6 -7
  4. data/.gitignore +3 -2
  5. data/Appraisals +5 -9
  6. data/Changelog.md +44 -0
  7. data/Gemfile.lock +148 -0
  8. data/README.md +9 -7
  9. data/data_migrate.gemspec +1 -10
  10. data/gemfiles/rails_6.1.gemfile +1 -1
  11. data/gemfiles/rails_6.1.gemfile.lock +227 -0
  12. data/gemfiles/rails_7.0.gemfile.lock +229 -0
  13. data/gemfiles/{rails_6.0.gemfile → rails_7.1.gemfile} +1 -1
  14. data/gemfiles/rails_7.1.gemfile.lock +262 -0
  15. data/lib/data_migrate/config.rb +1 -1
  16. data/lib/data_migrate/{data_migrator_five.rb → data_migrator.rb} +11 -34
  17. data/lib/data_migrate/data_schema.rb +2 -2
  18. data/lib/data_migrate/data_schema_migration.rb +24 -7
  19. data/lib/data_migrate/database_tasks.rb +37 -74
  20. data/lib/data_migrate/migration_context.rb +11 -8
  21. data/lib/data_migrate/rails_helper.rb +79 -0
  22. data/lib/data_migrate/schema_dumper.rb +1 -1
  23. data/lib/data_migrate/{schema_migration_six.rb → schema_migration.rb} +7 -4
  24. data/lib/data_migrate/{status_service_five.rb → status_service.rb} +14 -8
  25. data/lib/data_migrate/tasks/data_migrate_tasks.rb +16 -37
  26. data/lib/data_migrate/version.rb +1 -1
  27. data/lib/data_migrate.rb +4 -9
  28. data/spec/data_migrate/config_spec.rb +13 -10
  29. data/spec/data_migrate/data_migrator_spec.rb +25 -43
  30. data/spec/data_migrate/data_schema_migration_spec.rb +25 -8
  31. data/spec/data_migrate/data_spec.rb +1 -12
  32. data/spec/data_migrate/database_tasks_spec.rb +43 -76
  33. data/spec/data_migrate/migration.rb +11 -13
  34. data/spec/data_migrate/migration_context_spec.rb +20 -39
  35. data/spec/data_migrate/schema_dumper_spec.rb +11 -21
  36. data/spec/data_migrate/schema_migration_spec.rb +46 -41
  37. data/spec/data_migrate/status_service_spec.rb +29 -55
  38. data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +32 -67
  39. data/spec/db/data/20091231235959_some_name.rb +1 -1
  40. data/spec/db/data/20171231235959_super_update.rb +1 -1
  41. data/spec/db/migrate/{5.2/20131111111111_late_migration.rb → 20131111111111_late_migration.rb} +1 -1
  42. data/spec/db/migrate/{6.0/20202020202011_db_migration.rb → 20202020202011_db_migration.rb} +1 -1
  43. data/spec/spec_helper.rb +2 -8
  44. data/tasks/databases.rake +15 -13
  45. metadata +20 -34
  46. data/.ruby-version +0 -1
  47. data/.travis.yml +0 -14
  48. data/Gemfile.rails5.2 +0 -10
  49. data/gemfiles/rails_5.2.gemfile +0 -8
  50. data/lib/data_migrate/legacy_migrator.rb +0 -22
  51. data/lib/data_migrate/schema_migration_five.rb +0 -31
  52. data/spec/data_migrate/legacy_migrator_spec.rb +0 -50
  53. data/spec/db/6.0/20091231235959_some_name.rb +0 -9
  54. data/spec/db/6.0/20171231235959_super_update.rb +0 -9
  55. data/spec/db/data-6.0/20091231235959_some_name.rb +0 -9
  56. data/spec/db/data-6.0/20171231235959_super_update.rb +0 -9
  57. data/spec/db/data-6.0/20181128000207_excluded_file.rb.other_ext +0 -1
  58. data/spec/db/migrate/5.2/20202020202011_db_migration.rb +0 -9
  59. data/spec/db/migrate/6.0/20131111111111_late_migration.rb +0 -9
@@ -1,7 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe DataMigrate::DataMigrator do
4
- let(:subject) { DataMigrate::DataMigrator }
6
+ let(:described_class) { DataMigrate::DataMigrator }
7
+
5
8
  let(:db_config) do
6
9
  {
7
10
  adapter: "sqlite3",
@@ -10,49 +13,35 @@ describe DataMigrate::DataMigrator do
10
13
  end
11
14
 
12
15
  before do
13
- allow(DataMigrate::DataMigrator).to receive(:db_config) { db_config }
14
16
  ActiveRecord::Base.establish_connection(db_config)
17
+ DataMigrate::RailsHelper.schema_migration.create_table
18
+ DataMigrate::RailsHelper.data_schema_migration.create_table
15
19
  end
16
20
 
17
- describe :load_migrated do
18
- before do
19
- allow(subject).to receive(:db_config) { db_config }.at_least(:once)
20
- ActiveRecord::Base.establish_connection(db_config)
21
- ::ActiveRecord::SchemaMigration.create_table
22
- DataMigrate::DataSchemaMigration.create_table
23
- end
21
+ after do
22
+ ActiveRecord::Migration.drop_table("data_migrations") rescue nil
23
+ ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
24
+ end
24
25
 
25
- after do
26
- ActiveRecord::Migration.drop_table("data_migrations")
27
- ActiveRecord::Migration.drop_table("schema_migrations")
28
- end
26
+ describe ".load_migrated" do
27
+ let(:migrator) { DataMigrate::RailsHelper.data_migrator(:up, []) }
29
28
 
30
- it do
31
- subject.assure_data_schema_table
32
- DataMigrate::DataSchemaMigration.create(version: 20090000000000)
33
- ::ActiveRecord::SchemaMigration.create(version: 20100000000000)
34
- DataMigrate::DataSchemaMigration.create(version: 20110000000000)
35
- ::ActiveRecord::SchemaMigration.create(version: 20120000000000)
36
- migrated = subject.new(:up, []).load_migrated
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
37
35
  expect(migrated.count).to eq 2
38
36
  expect(migrated).to include 20090000000000
39
37
  expect(migrated).to include 20110000000000
40
38
  end
41
39
  end
42
40
 
43
- describe :assure_data_schema_table do
44
- before do
45
- allow(subject).to receive(:db_config) { db_config }.at_least(:once)
46
- ActiveRecord::Base.establish_connection(db_config)
47
- end
48
-
49
- after do
50
- ActiveRecord::Migration.drop_table("data_migrations")
51
- end
52
-
53
- it do
41
+ describe :create_data_schema_table do
42
+ it "creates the data_migrations table" do
54
43
  ActiveRecord::Migration.drop_table("data_migrations") rescue nil
55
- subject.assure_data_schema_table
44
+ described_class.create_data_schema_table
56
45
  expect(
57
46
  ActiveRecord::Base.connection.table_exists?("data_migrations")
58
47
  ).to eq true
@@ -60,15 +49,8 @@ describe DataMigrate::DataMigrator do
60
49
  end
61
50
 
62
51
  describe "#migrations_status" do
63
- before do
64
- allow(subject).to receive(:db_config) { db_config }.at_least(:once)
65
- ActiveRecord::Base.establish_connection(db_config)
66
- ::ActiveRecord::SchemaMigration.create_table
67
- DataMigrate::DataSchemaMigration.create_table
68
- end
69
-
70
52
  it "returns all migrations statuses" do
71
- status = subject.migrations_status
53
+ status = described_class.migrations_status
72
54
  expect(status.length).to eq 2
73
55
  expect(status.first).to eq ["down", "20091231235959", "Some name"]
74
56
  expect(status.second).to eq ["down", "20171231235959", "Super update"]
@@ -78,19 +60,19 @@ describe DataMigrate::DataMigrator do
78
60
  describe :match do
79
61
  context "when the file does not match" do
80
62
  it "returns nil" do
81
- expect(subject.match("not_a_data_migration_file")).to be_nil
63
+ expect(described_class.match("not_a_data_migration_file")).to be_nil
82
64
  end
83
65
  end
84
66
 
85
67
  context "when the file doesn't end in .rb" do
86
68
  it "returns nil" do
87
- expect(subject.match("20091231235959_some_name.rb.un~")).to be_nil
69
+ expect(described_class.match("20091231235959_some_name.rb.un~")).to be_nil
88
70
  end
89
71
  end
90
72
 
91
73
  context "when the file matches" do
92
74
  it "returns a valid MatchData object" do
93
- match_data = subject.match("20091231235959_some_name.rb")
75
+ match_data = described_class.match("20091231235959_some_name.rb")
94
76
 
95
77
  expect(match_data[0]).to eq "20091231235959_some_name.rb"
96
78
  expect(match_data[1]).to eq "20091231235959"
@@ -1,16 +1,33 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe DataMigrate::DataSchemaMigration do
4
- let(:subject) { DataMigrate::DataSchemaMigration }
5
- describe :table_name do
6
- it "returns correct table name" do
7
- expect(subject.table_name).to eq("data_migrations")
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
8
25
  end
9
- end
10
26
 
11
- describe :index_name do
12
- it "returns correct primary key name" do
13
- expect(subject.primary_key).to eq("version")
27
+ describe :index_name do
28
+ it "returns correct primary key name" do
29
+ expect(subject.primary_key).to eq("version")
30
+ end
14
31
  end
15
32
  end
16
33
  end
@@ -4,12 +4,6 @@ require "spec_helper"
4
4
 
5
5
  describe DataMigrate::Data do
6
6
  let(:subject) { DataMigrate::Data }
7
- let(:db_config) do
8
- {
9
- adapter: "sqlite3",
10
- database: "spec/db/test.db"
11
- }
12
- end
13
7
  let(:fixture_file_timestamps) do
14
8
  %w[20091231235959 20101231235959 20111231235959]
15
9
  end
@@ -28,11 +22,6 @@ describe DataMigrate::Data do
28
22
  end
29
23
 
30
24
  describe :define do
31
- before do
32
- allow(DataMigrate::DataMigrator).
33
- to receive(:db_config) { db_config }
34
- end
35
-
36
25
  after do
37
26
  ActiveRecord::Migration.drop_table("data_migrations")
38
27
  end
@@ -66,7 +55,7 @@ describe DataMigrate::Data do
66
55
 
67
56
  sql_select = <<-SQL
68
57
  SELECT version
69
- FROM #{DataMigrate::DataSchemaMigration.table_name}
58
+ FROM #{DataMigrate::RailsHelper.data_schema_migration.table_name}
70
59
  SQL
71
60
 
72
61
  db_list_data = ActiveRecord::Base.connection.
@@ -4,22 +4,10 @@ require "spec_helper"
4
4
 
5
5
  describe DataMigrate::DatabaseTasks do
6
6
  let(:subject) { DataMigrate::DatabaseTasks }
7
- let(:migration_path) {
8
- if Rails::VERSION::MAJOR == 5
9
- "spec/db/migrate/5.2"
10
- else
11
- "spec/db/migrate/6.0"
12
- end
13
- }
7
+ let(:migration_path) { "spec/db/migrate" }
14
8
  let(:data_migrations_path) {
15
9
  DataMigrate.config.data_migrations_path
16
10
  }
17
- let(:db_config) do
18
- {
19
- adapter: "sqlite3",
20
- database: "spec/db/test.db"
21
- }
22
- end
23
11
 
24
12
  before do
25
13
  # In a normal Rails installation, db_dir would defer to
@@ -33,34 +21,20 @@ describe DataMigrate::DatabaseTasks do
33
21
  allow(DataMigrate::Tasks::DataMigrateTasks).to receive(:migrations_paths) {
34
22
  data_migrations_path
35
23
  }
36
- allow(DataMigrate::DataMigrator).to receive(:db_config) { db_config }
37
- ActiveRecord::Base.establish_connection(db_config)
38
- if Rails.version >= '6.1'
39
- hash_config = ActiveRecord::DatabaseConfigurations::HashConfig.new('test', 'test', db_config)
40
- config_obj = ActiveRecord::DatabaseConfigurations.new([hash_config])
41
- allow(ActiveRecord::Base).to receive(:configurations).and_return(config_obj)
42
- else
43
- ActiveRecord::Base.configurations[:test] = db_config
44
- end
45
- end
46
-
47
- describe :schema_file do
48
- it "returns the correct data schema file path" do
49
- expect(subject.schema_file(nil)).to eq "db/data_schema.rb"
50
- end
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)
51
28
  end
52
29
 
53
30
  context "migrations" do
54
31
  after do
55
- begin
56
- ActiveRecord::Migration.drop_table("data_migrations")
57
- rescue ActiveRecord::StatementInvalid
58
- end
59
- ActiveRecord::Migration.drop_table("schema_migrations")
32
+ ActiveRecord::Migration.drop_table("data_migrations") rescue nil
33
+ ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
60
34
  end
61
35
 
62
36
  before do
63
- ActiveRecord::SchemaMigration.create_table
37
+ DataMigrate::RailsHelper.schema_migration.create_table
64
38
 
65
39
  allow(DataMigrate::SchemaMigration).to receive(:migrations_paths) {
66
40
  migration_path
@@ -68,71 +42,64 @@ describe DataMigrate::DatabaseTasks do
68
42
  allow(DataMigrate::DatabaseTasks).to receive(:data_migrations_path) {
69
43
  data_migrations_path
70
44
  }.at_least(:once)
71
- allow(DataMigrate::DatabaseTasks).to receive(:schema_migrations_path) {
72
- migration_path
73
- }.at_least(:once)
74
45
  end
75
46
 
76
47
  describe :past_migrations do
77
- it do
48
+ it "returns past migration records" do
78
49
  subject.forward
79
- m = subject.past_migrations
80
- expect(m.count).to eq 1
81
- expect(m.first[:version]).to eq 20091231235959
50
+ migrations = subject.past_migrations
51
+ expect(migrations.count).to eq 1
52
+ expect(migrations.first[:version]).to eq 20091231235959
82
53
  end
83
54
 
84
55
  it "shows nothing without any migrations" do
85
- m = subject.past_migrations
86
- expect(m.count).to eq 0
87
- end
88
- end
89
-
90
- describe :load_schema_current do
91
- before do
92
- allow(DataMigrate::DataMigrator).to receive(:full_migrations_path).and_return(migration_path)
93
- end
94
-
95
- it "loads the current schema file" do
96
- if Rails::VERSION::MAJOR < 6
97
- skip("Not implemented for Rails lower than 6")
98
- end
99
- allow(subject).to receive(:schema_location).and_return("spec/db/data/schema/")
100
-
101
- subject.load_schema_current
102
- versions = DataMigrate::DataSchemaMigration.normalized_versions
103
- expect(versions.count).to eq(2)
104
- end
105
-
106
- it "loads schema file that has not been update with latest data migrations" do
107
- if Rails::VERSION::MAJOR < 6
108
- skip("Not implemented for Rails lower than 6")
109
- end
110
-
111
- allow(subject).to receive(:schema_location).and_return("spec/db/data/partial_schema/")
112
-
113
- subject.load_schema_current
114
- versions = DataMigrate::DataSchemaMigration.normalized_versions
115
- expect(versions.count).to eq(1)
56
+ migrations = subject.past_migrations
57
+ expect(migrations.count).to eq 0
116
58
  end
117
59
  end
118
60
 
119
61
  describe :forward do
120
-
121
62
  it "run forward default amount of times" do
122
63
  subject.forward
123
- versions = DataMigrate::DataSchemaMigration.normalized_versions
64
+ versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
124
65
  expect(versions.count).to eq(1)
125
66
  end
126
67
 
127
68
  it "run forward defined number of times" do
128
69
  subject.forward(2)
129
- versions = DataMigrate::DataSchemaMigration.normalized_versions
70
+ versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
130
71
  expect(versions.count).to eq(1)
131
72
  expect(versions.first).to eq "20091231235959"
132
- versions = ActiveRecord::SchemaMigration.normalized_versions
73
+ versions = DataMigrate::RailsHelper.schema_migration.normalized_versions
133
74
  expect(versions.count).to eq(1)
134
75
  expect(versions.first).to eq "20131111111111"
135
76
  end
136
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
137
104
  end
138
105
  end
@@ -1,19 +1,17 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
2
 
3
- if Rails::VERSION::MAJOR >= 5
4
- subject = DataMigrate::MigrationFive
5
- else
6
- subject = DataMigrate::Migration
7
- end
3
+ require 'spec_helper'
8
4
 
9
- describe subject do
10
- it "uses correct table name" do
11
- expect(subject.table_name).to eq("data_migrations")
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
12
10
  end
13
11
 
14
- it "uses correct index name" do
15
- expect(subject).to receive(:table_name_prefix) { "" }
16
- expect(subject).to receive(:table_name_suffix) { "" }
17
- expect(subject.primary_key).to eq("version")
12
+ describe ".index_name" do
13
+ it "returns correct primary key name" do
14
+ expect(subject.primary_key).to eq("version")
15
+ end
18
16
  end
19
17
  end
@@ -1,30 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe DataMigrate::DataMigrator do
4
- let(:context) {
5
- if (Rails::VERSION::MAJOR == 5)
6
- DataMigrate::MigrationContext.new("spec/db/data")
7
- else
8
- DataMigrate::MigrationContext.new("spec/db/data-6.0")
9
- end
10
- }
11
- let(:schema_context) {
12
- if (Rails::VERSION::MAJOR == 5)
13
- ActiveRecord::MigrationContext.new("spec/db/migrate/5.2")
14
- else
15
- ActiveRecord::MigrationContext.new("spec/db/migrate/6.0", ActiveRecord::Base.connection.schema_migration)
16
- end
17
- }
18
-
19
- after do
20
- begin
21
- ActiveRecord::Migration.drop_table("data_migrations")
22
- ActiveRecord::Migration.drop_table("schema_migrations")
23
- rescue StandardError
24
- nil
25
- end
26
- end
27
-
6
+ let(:context) { DataMigrate::MigrationContext.new("spec/db/data") }
7
+ let(:schema_context) { ActiveRecord::MigrationContext.new("spec/db/migrate", ActiveRecord::Base.connection.schema_migration) }
28
8
  let(:db_config) do
29
9
  {
30
10
  adapter: "sqlite3",
@@ -32,21 +12,22 @@ describe DataMigrate::DataMigrator do
32
12
  }
33
13
  end
34
14
 
35
- describe :migrate do
36
- before do
37
- ActiveRecord::Base.establish_connection(db_config)
38
- ActiveRecord::SchemaMigration.create_table
39
- end
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
40
20
 
41
- after do
42
- ActiveRecord::Migration.drop_table("data_migrations")
43
- ActiveRecord::Migration.drop_table("schema_migrations")
44
- end
21
+ after do
22
+ ActiveRecord::Migration.drop_table("data_migrations") rescue nil
23
+ ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
24
+ end
45
25
 
26
+ describe "migrate" do
46
27
  it "migrates existing file" do
47
28
  context.migrate(nil)
48
29
  context.migrations_status
49
- versions = DataMigrate::DataSchemaMigration.normalized_versions
30
+ versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
50
31
  expect(versions.count).to eq(2)
51
32
  expect(versions).to include("20091231235959")
52
33
  expect(versions).to include("20171231235959")
@@ -55,7 +36,7 @@ describe DataMigrate::DataMigrator do
55
36
  it "undo migration" do
56
37
  context.migrate(nil)
57
38
  context.run(:down, 20171231235959)
58
- versions = DataMigrate::DataSchemaMigration.normalized_versions
39
+ versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
59
40
  expect(versions.count).to eq(1)
60
41
  expect(versions).to include("20091231235959")
61
42
  end
@@ -72,7 +53,7 @@ describe DataMigrate::DataMigrator do
72
53
 
73
54
  it "runs a specific migration" do
74
55
  context.run(:up, 20171231235959)
75
- versions = DataMigrate::DataSchemaMigration.normalized_versions
56
+ versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
76
57
  expect(versions.count).to eq(1)
77
58
  expect(versions).to include("20171231235959")
78
59
  end
@@ -100,7 +81,7 @@ describe DataMigrate::DataMigrator do
100
81
  expect {
101
82
  context.rollback
102
83
  }.to output(/Undoing SuperUpdate/).to_stdout
103
- versions = DataMigrate::DataSchemaMigration.normalized_versions
84
+ versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
104
85
  expect(versions.count).to eq(1)
105
86
  expect(versions).to include("20091231235959")
106
87
  end
@@ -111,7 +92,7 @@ describe DataMigrate::DataMigrator do
111
92
  expect {
112
93
  context.rollback(2)
113
94
  }.to output(/Undoing SomeName/).to_stdout
114
- versions = DataMigrate::DataSchemaMigration.normalized_versions
95
+ versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
115
96
  expect(versions.count).to eq(0)
116
97
  end
117
98
 
@@ -120,7 +101,7 @@ describe DataMigrate::DataMigrator do
120
101
  expect {
121
102
  context.rollback(2)
122
103
  }.to output(/Undoing SomeName/).to_stdout
123
- versions = DataMigrate::DataSchemaMigration.normalized_versions
104
+ versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
124
105
  expect(versions.count).to eq(0)
125
106
  end
126
107
  end
@@ -4,35 +4,25 @@ require "spec_helper"
4
4
 
5
5
  describe DataMigrate::SchemaDumper do
6
6
  let(:subject) { DataMigrate::SchemaDumper }
7
- let(:db_config) do
8
- {
9
- adapter: "sqlite3",
10
- database: "spec/db/test.db"
11
- }
12
- end
13
7
  let(:fixture_file_timestamps) do
14
8
  %w[20091231235959 20101231235959 20111231235959]
15
9
  end
16
10
 
17
- describe :dump do
18
- before do
19
- allow(DataMigrate::DataMigrator).
20
- to receive(:db_config) { db_config }.at_least(:once)
21
- ActiveRecord::Base.establish_connection(db_config)
22
-
23
- ActiveRecord::SchemaMigration.create_table
24
- DataMigrate::DataMigrator.assure_data_schema_table
11
+ before do
12
+ DataMigrate::RailsHelper.schema_migration.create_table
13
+ DataMigrate::RailsHelper.data_schema_migration.create_table
25
14
 
26
- ActiveRecord::Base.connection.execute <<-SQL
27
- INSERT INTO #{DataMigrate::DataSchemaMigration.table_name}
28
- VALUES #{fixture_file_timestamps.map { |t| "(#{t})" }.join(', ')}
29
- SQL
15
+ fixture_file_timestamps.map do |t|
16
+ DataMigrate::RailsHelper.data_schema_migration.create_version(t)
30
17
  end
18
+ end
31
19
 
32
- after do
33
- ActiveRecord::Migration.drop_table("data_migrations")
34
- end
20
+ after do
21
+ ActiveRecord::Migration.drop_table("data_migrations") rescue nil
22
+ ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
23
+ end
35
24
 
25
+ describe ".dump" do
36
26
  it "writes the define method with the version key to the stream" do
37
27
  stream = StringIO.new
38
28
  DataMigrate::SchemaDumper.dump(ActiveRecord::Base.connection, stream)