data_migrate 8.2.0 → 9.1.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/.github/workflows/build.yml +34 -0
- data/.github/workflows/gempush.yml +6 -7
- data/.gitignore +3 -1
- data/Appraisals +0 -4
- data/Changelog.md +52 -0
- data/README.md +10 -7
- data/data_migrate.gemspec +1 -10
- data/lib/data_migrate/config.rb +10 -1
- data/lib/data_migrate/{data_migrator_five.rb → data_migrator.rb} +1 -12
- data/lib/data_migrate/data_schema.rb +1 -1
- data/lib/data_migrate/data_schema_migration.rb +1 -1
- data/lib/data_migrate/database_tasks.rb +61 -67
- data/lib/data_migrate/{schema_migration_six.rb → schema_migration.rb} +4 -2
- data/lib/data_migrate/{status_service_five.rb → status_service.rb} +12 -6
- data/lib/data_migrate/tasks/data_migrate_tasks.rb +15 -36
- data/lib/data_migrate/version.rb +1 -1
- data/lib/data_migrate.rb +6 -8
- data/lib/generators/data_migrate.rb +15 -2
- data/lib/generators/data_migration/data_migration_generator.rb +5 -1
- data/spec/data_migrate/config_spec.rb +48 -6
- data/spec/data_migrate/data_migrator_spec.rb +13 -34
- data/spec/data_migrate/data_spec.rb +0 -11
- data/spec/data_migrate/database_tasks_spec.rb +10 -59
- data/spec/data_migrate/legacy_migrator_spec.rb +6 -18
- data/spec/data_migrate/migration.rb +11 -13
- data/spec/data_migrate/migration_context_spec.rb +11 -37
- data/spec/data_migrate/schema_dumper_spec.rb +10 -23
- data/spec/data_migrate/schema_migration_spec.rb +40 -42
- data/spec/data_migrate/status_service_spec.rb +26 -55
- data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +31 -66
- data/spec/db/data/20091231235959_some_name.rb +1 -1
- data/spec/db/data/20171231235959_super_update.rb +1 -1
- data/spec/generators/data_migration/data_migration_generator_spec.rb +47 -6
- data/spec/spec_helper.rb +2 -8
- data/tasks/databases.rake +37 -85
- metadata +14 -31
- data/.ruby-version +0 -1
- data/.travis.yml +0 -14
- data/Gemfile.rails5.2 +0 -10
- data/gemfiles/rails_5.2.gemfile +0 -8
- data/lib/data_migrate/schema_migration_five.rb +0 -31
- data/spec/db/6.0/20091231235959_some_name.rb +0 -9
- data/spec/db/6.0/20171231235959_super_update.rb +0 -9
- data/spec/db/data-6.0/20091231235959_some_name.rb +0 -9
- data/spec/db/data-6.0/20171231235959_super_update.rb +0 -9
- data/spec/db/data-6.0/20181128000207_excluded_file.rb.other_ext +0 -1
- data/spec/db/migrate/5.2/20131111111111_late_migration.rb +0 -9
- data/spec/db/migrate/5.2/20202020202011_db_migration.rb +0 -9
- /data/spec/db/migrate/{6.0/20131111111111_late_migration.rb → 20131111111111_late_migration.rb} +0 -0
- /data/spec/db/migrate/{6.0/20202020202011_db_migration.rb → 20202020202011_db_migration.rb} +0 -0
data/lib/data_migrate.rb
CHANGED
@@ -1,22 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require File.join(File.dirname(__FILE__), "data_migrate", "
|
3
|
+
require File.join(File.dirname(__FILE__), "data_migrate", "data_migrator")
|
4
4
|
require File.join(File.dirname(__FILE__), "data_migrate", "data_schema_migration")
|
5
5
|
require File.join(File.dirname(__FILE__), "data_migrate", "data_schema")
|
6
6
|
require File.join(File.dirname(__FILE__), "data_migrate", "database_tasks")
|
7
7
|
require File.join(File.dirname(__FILE__), "data_migrate", "schema_dumper")
|
8
|
-
require File.join(File.dirname(__FILE__), "data_migrate", "
|
8
|
+
require File.join(File.dirname(__FILE__), "data_migrate", "status_service")
|
9
9
|
require File.join(File.dirname(__FILE__), "data_migrate", "migration_context")
|
10
10
|
require File.join(File.dirname(__FILE__), "data_migrate", "railtie")
|
11
11
|
require File.join(File.dirname(__FILE__), "data_migrate", "tasks/data_migrate_tasks")
|
12
12
|
require File.join(File.dirname(__FILE__), "data_migrate", "legacy_migrator")
|
13
13
|
require File.join(File.dirname(__FILE__), "data_migrate", "config")
|
14
|
-
|
15
|
-
if Rails::VERSION::MAJOR == 5
|
16
|
-
require File.join(File.dirname(__FILE__), "data_migrate", "schema_migration_five")
|
17
|
-
else
|
18
|
-
require File.join(File.dirname(__FILE__), "data_migrate", "schema_migration_six")
|
19
|
-
end
|
14
|
+
require File.join(File.dirname(__FILE__), "data_migrate", "schema_migration")
|
20
15
|
|
21
16
|
module DataMigrate
|
17
|
+
def self.root
|
18
|
+
File.dirname(__FILE__)
|
19
|
+
end
|
22
20
|
end
|
@@ -1,9 +1,22 @@
|
|
1
1
|
require 'rails/generators/named_base'
|
2
|
+
|
2
3
|
module DataMigrate
|
3
4
|
module Generators
|
4
5
|
class DataMigrationGenerator < Rails::Generators::NamedBase #:nodoc:
|
5
|
-
|
6
|
-
|
6
|
+
class << self
|
7
|
+
def source_root
|
8
|
+
build_data_migrate_source_root
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def build_data_migrate_source_root
|
14
|
+
if DataMigrate.config.data_template_path == DataMigrate::Config::DEFAULT_DATA_TEMPLATE_PATH
|
15
|
+
File.expand_path(File.join(File.dirname(__FILE__), generator_name, 'templates'))
|
16
|
+
else
|
17
|
+
File.expand_path(File.dirname(DataMigrate.config.data_template_path))
|
18
|
+
end
|
19
|
+
end
|
7
20
|
end
|
8
21
|
end
|
9
22
|
end
|
@@ -14,7 +14,7 @@ module DataMigrate
|
|
14
14
|
|
15
15
|
def create_data_migration
|
16
16
|
set_local_assigns!
|
17
|
-
migration_template
|
17
|
+
migration_template template_path, data_migrations_file_path
|
18
18
|
end
|
19
19
|
|
20
20
|
protected
|
@@ -26,6 +26,10 @@ module DataMigrate
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
def template_path
|
30
|
+
DataMigrate.config.data_template_path
|
31
|
+
end
|
32
|
+
|
29
33
|
def migration_base_class_name
|
30
34
|
"ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]"
|
31
35
|
end
|
@@ -1,27 +1,69 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "spec_helper"
|
2
4
|
|
3
5
|
describe DataMigrate::Config do
|
4
|
-
|
5
6
|
it "sets default data_migrations_path path", :no_override do
|
6
7
|
expect(DataMigrate.config.data_migrations_path).to eq "db/data/"
|
7
8
|
end
|
8
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
|
+
|
9
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
|
+
|
10
41
|
before do
|
11
|
-
@
|
42
|
+
@original_data_migrations_path = DataMigrate.config.data_template_path
|
43
|
+
|
12
44
|
DataMigrate.configure do |config|
|
13
|
-
config.
|
45
|
+
config.data_template_path = data_template_path
|
14
46
|
end
|
15
47
|
end
|
16
48
|
|
17
49
|
after do
|
18
50
|
DataMigrate.configure do |config|
|
19
|
-
config.
|
51
|
+
config.data_template_path = @original_data_migrations_path
|
20
52
|
end
|
21
53
|
end
|
22
54
|
|
23
|
-
it do
|
24
|
-
|
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
|
25
67
|
end
|
26
68
|
end
|
27
69
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "spec_helper"
|
2
4
|
|
3
5
|
describe DataMigrate::DataMigrator do
|
@@ -10,25 +12,18 @@ describe DataMigrate::DataMigrator do
|
|
10
12
|
end
|
11
13
|
|
12
14
|
before do
|
13
|
-
allow(DataMigrate::DataMigrator).to receive(:db_config) { db_config }
|
14
15
|
ActiveRecord::Base.establish_connection(db_config)
|
16
|
+
::ActiveRecord::SchemaMigration.create_table
|
17
|
+
DataMigrate::DataSchemaMigration.create_table
|
15
18
|
end
|
16
19
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
::ActiveRecord::SchemaMigration.create_table
|
22
|
-
DataMigrate::DataSchemaMigration.create_table
|
23
|
-
end
|
24
|
-
|
25
|
-
after do
|
26
|
-
ActiveRecord::Migration.drop_table("data_migrations")
|
27
|
-
ActiveRecord::Migration.drop_table("schema_migrations")
|
28
|
-
end
|
20
|
+
after do
|
21
|
+
ActiveRecord::Migration.drop_table("data_migrations") rescue nil
|
22
|
+
ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
|
23
|
+
end
|
29
24
|
|
30
|
-
|
31
|
-
|
25
|
+
describe ".load_migrated" do
|
26
|
+
it "loads migrated versions" do
|
32
27
|
DataMigrate::DataSchemaMigration.create(version: 20090000000000)
|
33
28
|
::ActiveRecord::SchemaMigration.create(version: 20100000000000)
|
34
29
|
DataMigrate::DataSchemaMigration.create(version: 20110000000000)
|
@@ -40,19 +35,10 @@ describe DataMigrate::DataMigrator do
|
|
40
35
|
end
|
41
36
|
end
|
42
37
|
|
43
|
-
describe :
|
44
|
-
|
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
|
38
|
+
describe :create_data_schema_table do
|
39
|
+
it "creates the data_migrations table" do
|
54
40
|
ActiveRecord::Migration.drop_table("data_migrations") rescue nil
|
55
|
-
subject.
|
41
|
+
subject.create_data_schema_table
|
56
42
|
expect(
|
57
43
|
ActiveRecord::Base.connection.table_exists?("data_migrations")
|
58
44
|
).to eq true
|
@@ -60,13 +46,6 @@ describe DataMigrate::DataMigrator do
|
|
60
46
|
end
|
61
47
|
|
62
48
|
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
49
|
it "returns all migrations statuses" do
|
71
50
|
status = subject.migrations_status
|
72
51
|
expect(status.length).to eq 2
|
@@ -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
|
@@ -4,13 +4,7 @@ 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
|
}
|
@@ -33,9 +27,8 @@ describe DataMigrate::DatabaseTasks do
|
|
33
27
|
allow(DataMigrate::Tasks::DataMigrateTasks).to receive(:migrations_paths) {
|
34
28
|
data_migrations_path
|
35
29
|
}
|
36
|
-
allow(DataMigrate::DataMigrator).to receive(:db_config) { db_config }
|
37
30
|
ActiveRecord::Base.establish_connection(db_config)
|
38
|
-
if
|
31
|
+
if Gem::Dependency.new("railties", ">= 6.1").match?("railties", Gem.loaded_specs["railties"].version)
|
39
32
|
hash_config = ActiveRecord::DatabaseConfigurations::HashConfig.new('test', 'test', db_config)
|
40
33
|
config_obj = ActiveRecord::DatabaseConfigurations.new([hash_config])
|
41
34
|
allow(ActiveRecord::Base).to receive(:configurations).and_return(config_obj)
|
@@ -44,19 +37,10 @@ describe DataMigrate::DatabaseTasks do
|
|
44
37
|
end
|
45
38
|
end
|
46
39
|
|
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
|
51
|
-
end
|
52
|
-
|
53
40
|
context "migrations" do
|
54
41
|
after do
|
55
|
-
|
56
|
-
|
57
|
-
rescue ActiveRecord::StatementInvalid
|
58
|
-
end
|
59
|
-
ActiveRecord::Migration.drop_table("schema_migrations")
|
42
|
+
ActiveRecord::Migration.drop_table("data_migrations") rescue nil
|
43
|
+
ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
|
60
44
|
end
|
61
45
|
|
62
46
|
before do
|
@@ -68,56 +52,23 @@ describe DataMigrate::DatabaseTasks do
|
|
68
52
|
allow(DataMigrate::DatabaseTasks).to receive(:data_migrations_path) {
|
69
53
|
data_migrations_path
|
70
54
|
}.at_least(:once)
|
71
|
-
allow(DataMigrate::DatabaseTasks).to receive(:schema_migrations_path) {
|
72
|
-
migration_path
|
73
|
-
}.at_least(:once)
|
74
55
|
end
|
75
56
|
|
76
57
|
describe :past_migrations do
|
77
|
-
it do
|
58
|
+
it "returns past migration records" do
|
78
59
|
subject.forward
|
79
|
-
|
80
|
-
expect(
|
81
|
-
expect(
|
60
|
+
migrations = subject.past_migrations
|
61
|
+
expect(migrations.count).to eq 1
|
62
|
+
expect(migrations.first[:version]).to eq 20091231235959
|
82
63
|
end
|
83
64
|
|
84
65
|
it "shows nothing without any migrations" do
|
85
|
-
|
86
|
-
expect(
|
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)
|
66
|
+
migrations = subject.past_migrations
|
67
|
+
expect(migrations.count).to eq 0
|
116
68
|
end
|
117
69
|
end
|
118
70
|
|
119
71
|
describe :forward do
|
120
|
-
|
121
72
|
it "run forward default amount of times" do
|
122
73
|
subject.forward
|
123
74
|
versions = DataMigrate::DataSchemaMigration.normalized_versions
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "spec_helper"
|
2
4
|
|
3
5
|
describe DataMigrate::LegacyMigrator do
|
@@ -5,30 +7,17 @@ describe DataMigrate::LegacyMigrator do
|
|
5
7
|
DataMigrate::MigrationContext.new("spec/db/data")
|
6
8
|
}
|
7
9
|
|
8
|
-
after do
|
9
|
-
begin
|
10
|
-
ActiveRecord::Migration.drop_table("data_migrations")
|
11
|
-
ActiveRecord::Migration.drop_table("schema_migrations")
|
12
|
-
rescue StandardError
|
13
|
-
nil
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
10
|
before do
|
18
|
-
ActiveRecord::Base.establish_connection(db_config)
|
19
11
|
ActiveRecord::SchemaMigration.create_table
|
20
12
|
DataMigrate::DataSchemaMigration.create_table
|
21
13
|
end
|
22
14
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
database: "spec/db/test.db"
|
27
|
-
}
|
15
|
+
after do
|
16
|
+
ActiveRecord::Migration.drop_table("data_migrations") rescue nil
|
17
|
+
ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
|
28
18
|
end
|
29
19
|
|
30
20
|
it "migrate legacy migrations to be in correct table" do
|
31
|
-
DataMigrate::DataSchemaMigration.create_table
|
32
21
|
# simulate creation of legacy data migration when
|
33
22
|
# it was recorded in schema table
|
34
23
|
ActiveRecord::SchemaMigration.create(version: "20091231235959")
|
@@ -36,7 +25,7 @@ describe DataMigrate::LegacyMigrator do
|
|
36
25
|
# create one migration in correct place
|
37
26
|
DataMigrate::DataSchemaMigration.create(version: "20171231235959")
|
38
27
|
|
39
|
-
migrated = DataMigrate::DataMigrator
|
28
|
+
migrated = DataMigrate::DataMigrator.new(:up, []).load_migrated
|
40
29
|
expect(migrated.count).to eq 1
|
41
30
|
|
42
31
|
DataMigrate::LegacyMigrator.new("spec/db/data").migrate
|
@@ -46,5 +35,4 @@ describe DataMigrate::LegacyMigrator do
|
|
46
35
|
migrated = DataMigrate::DataMigrator .new(:up, []).load_migrated
|
47
36
|
expect(migrated.count).to eq 2
|
48
37
|
end
|
49
|
-
|
50
38
|
end
|
@@ -1,19 +1,17 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
subject = DataMigrate::MigrationFive
|
5
|
-
else
|
6
|
-
subject = DataMigrate::Migration
|
7
|
-
end
|
3
|
+
require 'spec_helper'
|
8
4
|
|
9
|
-
describe
|
10
|
-
|
11
|
-
|
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
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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,48 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "spec_helper"
|
2
4
|
|
3
5
|
describe DataMigrate::DataMigrator do
|
4
|
-
let(:context) {
|
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
|
-
}
|
6
|
+
let(:context) { DataMigrate::MigrationContext.new("spec/db/data") }
|
7
|
+
let(:schema_context) { ActiveRecord::MigrationContext.new("spec/db/migrate", ActiveRecord::Base.connection.schema_migration) }
|
18
8
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
ActiveRecord::Migration.drop_table("schema_migrations")
|
23
|
-
rescue StandardError
|
24
|
-
nil
|
25
|
-
end
|
9
|
+
before do
|
10
|
+
ActiveRecord::SchemaMigration.create_table
|
11
|
+
DataMigrate::DataSchemaMigration.create_table
|
26
12
|
end
|
27
13
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
database: "spec/db/test.db"
|
32
|
-
}
|
14
|
+
after do
|
15
|
+
ActiveRecord::Migration.drop_table("data_migrations") rescue nil
|
16
|
+
ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
|
33
17
|
end
|
34
18
|
|
35
|
-
describe
|
36
|
-
before do
|
37
|
-
ActiveRecord::Base.establish_connection(db_config)
|
38
|
-
ActiveRecord::SchemaMigration.create_table
|
39
|
-
end
|
40
|
-
|
41
|
-
after do
|
42
|
-
ActiveRecord::Migration.drop_table("data_migrations")
|
43
|
-
ActiveRecord::Migration.drop_table("schema_migrations")
|
44
|
-
end
|
45
|
-
|
19
|
+
describe "migrate" do
|
46
20
|
it "migrates existing file" do
|
47
21
|
context.migrate(nil)
|
48
22
|
context.migrations_status
|
@@ -4,35 +4,22 @@ 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
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
ActiveRecord::SchemaMigration.create_table
|
24
|
-
DataMigrate::DataMigrator.assure_data_schema_table
|
25
|
-
|
26
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
27
|
-
INSERT INTO #{DataMigrate::DataSchemaMigration.table_name}
|
28
|
-
VALUES #{fixture_file_timestamps.map { |t| "(#{t})" }.join(', ')}
|
29
|
-
SQL
|
30
|
-
end
|
11
|
+
before do
|
12
|
+
ActiveRecord::SchemaMigration.create_table
|
13
|
+
DataMigrate::DataSchemaMigration.create_table
|
14
|
+
DataMigrate::DataSchemaMigration.create(fixture_file_timestamps.map { |t| { version: t } })
|
15
|
+
end
|
31
16
|
|
32
|
-
|
33
|
-
|
34
|
-
|
17
|
+
after do
|
18
|
+
ActiveRecord::Migration.drop_table("data_migrations") rescue nil
|
19
|
+
ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
|
20
|
+
end
|
35
21
|
|
22
|
+
describe ".dump" do
|
36
23
|
it "writes the define method with the version key to the stream" do
|
37
24
|
stream = StringIO.new
|
38
25
|
DataMigrate::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
|