dynamic_migrations 3.8.6 → 3.8.7
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/CHANGELOG.md +15 -0
- data/lib/dynamic_migrations/postgres/generator/enum.rb +13 -9
- data/lib/dynamic_migrations/postgres/generator/fragment.rb +1 -1
- data/lib/dynamic_migrations/postgres/generator/function.rb +13 -13
- data/lib/dynamic_migrations/postgres/generator/migration.rb +45 -7
- data/lib/dynamic_migrations/postgres/generator/table_migration.rb +2 -0
- data/lib/dynamic_migrations/postgres/generator.rb +100 -46
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/extensions.rb +2 -2
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/enums.rb +10 -10
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/functions.rb +11 -11
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/columns.rb +11 -11
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/foreign_key_constraints.rb +11 -11
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/indexes.rb +11 -11
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/primary_key.rb +6 -6
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/triggers.rb +11 -11
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/unique_constraints.rb +11 -11
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/validations.rb +11 -11
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables.rb +8 -8
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas.rb +3 -3
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations.rb +4 -4
- data/lib/dynamic_migrations/postgres/server/database/differences.rb +17 -17
- data/lib/dynamic_migrations/postgres/server/database/schema/enum.rb +7 -0
- data/lib/dynamic_migrations/postgres/server/database/schema/table.rb +61 -1
- data/lib/dynamic_migrations/version.rb +1 -1
- data/sig/dynamic_migrations/postgres/generator/enum.rbs +2 -0
- data/sig/dynamic_migrations/postgres/generator/function.rbs +1 -0
- data/sig/dynamic_migrations/postgres/generator/migration.rbs +1 -0
- data/sig/dynamic_migrations/postgres/generator/schema_migration.rbs +2 -0
- data/sig/dynamic_migrations/postgres/generator/table_migration.rbs +3 -0
- data/sig/dynamic_migrations/postgres/generator.rbs +3 -1
- data/sig/dynamic_migrations/postgres/server/database/schema/enum.rbs +3 -0
- data/sig/dynamic_migrations/postgres/server/database/schema/table.rbs +3 -0
- metadata +2 -2
data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/functions.rb
CHANGED
@@ -10,10 +10,10 @@ module DynamicMigrations
|
|
10
10
|
module Functions
|
11
11
|
def process_functions schema_name, configuration_functions, database_functions
|
12
12
|
# process all the functions
|
13
|
-
log.
|
13
|
+
log.debug " Processing Functions"
|
14
14
|
function_names = (configuration_functions.keys + database_functions.keys).uniq
|
15
15
|
function_names.each do |function_name|
|
16
|
-
log.
|
16
|
+
log.debug " Processing Function #{function_name}"
|
17
17
|
process_function schema_name, function_name, configuration_functions[function_name] || {}, database_functions[function_name] || {}
|
18
18
|
end
|
19
19
|
end
|
@@ -22,7 +22,7 @@ module DynamicMigrations
|
|
22
22
|
# If the function exists in the configuration but not in the database
|
23
23
|
# then we have to create it.
|
24
24
|
if configuration_function[:exists] == true && !database_function[:exists]
|
25
|
-
log.
|
25
|
+
log.debug " Function `#{function_name}` exists in configuration but not in the database"
|
26
26
|
|
27
27
|
# a migration to create the function
|
28
28
|
function = @database.configured_schema(schema_name).function(function_name)
|
@@ -31,7 +31,7 @@ module DynamicMigrations
|
|
31
31
|
# If the schema exists in the database but not in the configuration
|
32
32
|
# then we need to delete it.
|
33
33
|
elsif database_function[:exists] == true && !configuration_function[:exists]
|
34
|
-
log.
|
34
|
+
log.debug " Function `#{function_name}` exists in database but not in the configuration"
|
35
35
|
|
36
36
|
# a migration to create the function
|
37
37
|
function = @database.loaded_schema(schema_name).function(function_name)
|
@@ -40,19 +40,19 @@ module DynamicMigrations
|
|
40
40
|
# If the function exists in both the configuration and database representations
|
41
41
|
# but the definition is different then we need to update the definition.
|
42
42
|
elsif configuration_function[:normalized_definition][:matches] == false
|
43
|
-
log.
|
43
|
+
log.debug " Function `#{function_name}` exists in both configuration and the database"
|
44
44
|
|
45
|
-
log.
|
45
|
+
log.debug " Function `#{function_name}` definition is different"
|
46
46
|
function = @database.configured_schema(schema_name).function(function_name)
|
47
47
|
@generator.update_function function
|
48
48
|
# does the description also need to be updated
|
49
49
|
if configuration_function[:description][:matches] == false
|
50
50
|
# if the description was removed
|
51
51
|
if configuration_function[:description].nil?
|
52
|
-
log.
|
52
|
+
log.debug " Function `#{function_name}` description exists in database but not in the configuration"
|
53
53
|
@generator.remove_function_comment function
|
54
54
|
else
|
55
|
-
log.
|
55
|
+
log.debug " Function `#{function_name}` description does not match"
|
56
56
|
@generator.set_function_comment function
|
57
57
|
end
|
58
58
|
end
|
@@ -60,15 +60,15 @@ module DynamicMigrations
|
|
60
60
|
# If the function exists in both the configuration and database representations
|
61
61
|
# but the description is different then we need to update the description.
|
62
62
|
elsif configuration_function[:description][:matches] == false
|
63
|
-
log.
|
63
|
+
log.debug " Function `#{function_name}` exists in both configuration and the database"
|
64
64
|
|
65
65
|
function = @database.configured_schema(schema_name).function(function_name)
|
66
66
|
# if the description was removed
|
67
67
|
if configuration_function[:description].nil?
|
68
|
-
log.
|
68
|
+
log.debug " Function `#{function_name}` description exists in database but not in the configuration"
|
69
69
|
@generator.remove_function_comment function
|
70
70
|
else
|
71
|
-
log.
|
71
|
+
log.debug " Function `#{function_name}` description does not match"
|
72
72
|
@generator.set_function_comment function
|
73
73
|
end
|
74
74
|
end
|
@@ -11,10 +11,10 @@ module DynamicMigrations
|
|
11
11
|
module Columns
|
12
12
|
def process_columns schema_name, table_name, configuration_columns, database_columns
|
13
13
|
# process all the columns
|
14
|
-
log.
|
14
|
+
log.debug " Processing Columns"
|
15
15
|
column_names = (configuration_columns.keys + database_columns.keys).uniq
|
16
16
|
column_names.each do |column_name|
|
17
|
-
log.
|
17
|
+
log.debug " Processing Column #{column_name}"
|
18
18
|
process_column schema_name, table_name, column_name, configuration_columns[column_name] || {}, database_columns[column_name] || {}
|
19
19
|
end
|
20
20
|
end
|
@@ -23,7 +23,7 @@ module DynamicMigrations
|
|
23
23
|
# If the column exists in the configuration but not in the database
|
24
24
|
# then we have to create it.
|
25
25
|
if configuration_column[:exists] == true && !database_column[:exists]
|
26
|
-
log.
|
26
|
+
log.debug " Column `#{column_name}` exists in configuration but not in the database"
|
27
27
|
|
28
28
|
# a migration to create the column
|
29
29
|
column = @database.configured_schema(schema_name).table(table_name).column(column_name)
|
@@ -32,7 +32,7 @@ module DynamicMigrations
|
|
32
32
|
# If the schema exists in the database but not in the configuration
|
33
33
|
# then we need to delete it.
|
34
34
|
elsif database_column[:exists] == true && !configuration_column[:exists]
|
35
|
-
log.
|
35
|
+
log.debug " Column `#{column_name}` exists in database but not in the configuration"
|
36
36
|
|
37
37
|
# a migration to create the column
|
38
38
|
column = @database.loaded_schema(schema_name).table(table_name).column(column_name)
|
@@ -42,9 +42,9 @@ module DynamicMigrations
|
|
42
42
|
# but the definition (except description, which is handled seeprately below) is different
|
43
43
|
# then we need to update the definition.
|
44
44
|
elsif configuration_column.except(:exists, :description).filter { |name, attributes| attributes[:matches] == false }.any?
|
45
|
-
log.
|
45
|
+
log.debug " Column `#{column_name}` exists in both configuration and the database"
|
46
46
|
|
47
|
-
log.
|
47
|
+
log.debug " Column `#{column_name}` is different"
|
48
48
|
# update the column
|
49
49
|
column = @database.configured_schema(schema_name).table(table_name).column(column_name)
|
50
50
|
@generator.change_column column
|
@@ -52,10 +52,10 @@ module DynamicMigrations
|
|
52
52
|
if configuration_column[:description][:matches] == false
|
53
53
|
# if the description was removed
|
54
54
|
if configuration_column[:description].nil?
|
55
|
-
log.
|
55
|
+
log.debug " Column `#{column_name}` description exists in database but not in the configuration"
|
56
56
|
@generator.remove_column_comment column
|
57
57
|
else
|
58
|
-
log.
|
58
|
+
log.debug " Column `#{column_name}` description does not match"
|
59
59
|
@generator.set_column_comment column
|
60
60
|
end
|
61
61
|
end
|
@@ -63,15 +63,15 @@ module DynamicMigrations
|
|
63
63
|
# If the column exists in both the configuration and database representations
|
64
64
|
# but the description is different then we need to update the description.
|
65
65
|
elsif configuration_column[:description][:matches] == false
|
66
|
-
log.
|
66
|
+
log.debug " Column `#{column_name}` exists in both configuration and the database"
|
67
67
|
|
68
68
|
column = @database.configured_schema(schema_name).table(table_name).column(column_name)
|
69
69
|
# if the description was removed
|
70
70
|
if configuration_column[:description].nil?
|
71
|
-
log.
|
71
|
+
log.debug " Column `#{column_name}` description exists in database but not in the configuration"
|
72
72
|
@generator.remove_column_comment column
|
73
73
|
else
|
74
|
-
log.
|
74
|
+
log.debug " Column `#{column_name}` description does not match"
|
75
75
|
@generator.set_column_comment column
|
76
76
|
end
|
77
77
|
end
|
@@ -11,10 +11,10 @@ module DynamicMigrations
|
|
11
11
|
module ForeignKeyConstraints
|
12
12
|
def process_foreign_key_constraints schema_name, table_name, configuration_foreign_key_constraints, database_foreign_key_constraints
|
13
13
|
# process all the foreign_key_constraints
|
14
|
-
log.
|
14
|
+
log.debug " Processing Foreign Key Constraints"
|
15
15
|
foreign_key_constraint_names = (configuration_foreign_key_constraints.keys + database_foreign_key_constraints.keys).uniq
|
16
16
|
foreign_key_constraint_names.each do |foreign_key_constraint_name|
|
17
|
-
log.
|
17
|
+
log.debug " Processing Foreign Key Constraint #{foreign_key_constraint_name}"
|
18
18
|
process_foreign_key_constraint schema_name, table_name, foreign_key_constraint_name, configuration_foreign_key_constraints[foreign_key_constraint_name] || {}, database_foreign_key_constraints[foreign_key_constraint_name] || {}
|
19
19
|
end
|
20
20
|
end
|
@@ -23,7 +23,7 @@ module DynamicMigrations
|
|
23
23
|
# If the foreign_key_constraint exists in the configuration but not in the database
|
24
24
|
# then we have to create it.
|
25
25
|
if configuration_foreign_key_constraint[:exists] == true && !database_foreign_key_constraint[:exists]
|
26
|
-
log.
|
26
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` exists in configuration but not in the database"
|
27
27
|
|
28
28
|
# a migration to create the foreign_key_constraint
|
29
29
|
foreign_key_constraint = @database.configured_schema(schema_name).table(table_name).foreign_key_constraint(foreign_key_constraint_name)
|
@@ -32,7 +32,7 @@ module DynamicMigrations
|
|
32
32
|
# If the schema exists in the database but not in the configuration
|
33
33
|
# then we need to delete it.
|
34
34
|
elsif database_foreign_key_constraint[:exists] == true && !configuration_foreign_key_constraint[:exists]
|
35
|
-
log.
|
35
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` exists in database but not in the configuration"
|
36
36
|
|
37
37
|
# a migration to create the foreign_key_constraint
|
38
38
|
foreign_key_constraint = @database.loaded_schema(schema_name).table(table_name).foreign_key_constraint(foreign_key_constraint_name)
|
@@ -42,9 +42,9 @@ module DynamicMigrations
|
|
42
42
|
# but the definition (except description, which is handled seeprately below) is different
|
43
43
|
# then we need to update the definition.
|
44
44
|
elsif configuration_foreign_key_constraint.except(:exists, :description).filter { |name, attributes| attributes[:matches] == false }.any?
|
45
|
-
log.
|
45
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` exists in both configuration and the database"
|
46
46
|
|
47
|
-
log.
|
47
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` is different"
|
48
48
|
# recreate the foreign_key_constraint
|
49
49
|
original_foreign_key_constraint = @database.loaded_schema(schema_name).table(table_name).foreign_key_constraint(foreign_key_constraint_name)
|
50
50
|
updated_foreign_key_constraint = @database.configured_schema(schema_name).table(table_name).foreign_key_constraint(foreign_key_constraint_name)
|
@@ -53,10 +53,10 @@ module DynamicMigrations
|
|
53
53
|
if configuration_foreign_key_constraint[:description][:matches] == false
|
54
54
|
# if the description was removed
|
55
55
|
if configuration_foreign_key_constraint[:description].nil?
|
56
|
-
log.
|
56
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` description exists in database but not in the configuration"
|
57
57
|
@generator.remove_foreign_key_constraint_comment updated_foreign_key_constraint
|
58
58
|
else
|
59
|
-
log.
|
59
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` does not match"
|
60
60
|
@generator.set_foreign_key_constraint_comment updated_foreign_key_constraint
|
61
61
|
end
|
62
62
|
end
|
@@ -64,15 +64,15 @@ module DynamicMigrations
|
|
64
64
|
# If the foreign_key_constraint exists in both the configuration and database representations
|
65
65
|
# but the description is different then we need to update the description.
|
66
66
|
elsif configuration_foreign_key_constraint[:description][:matches] == false
|
67
|
-
log.
|
67
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` exists in both configuration and the database"
|
68
68
|
|
69
69
|
foreign_key_constraint = @database.configured_schema(schema_name).table(table_name).foreign_key_constraint(foreign_key_constraint_name)
|
70
70
|
# if the description was removed
|
71
71
|
if configuration_foreign_key_constraint[:description].nil?
|
72
|
-
log.
|
72
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` description exists in database but not in the configuration"
|
73
73
|
@generator.remove_foreign_key_constraint_comment foreign_key_constraint
|
74
74
|
else
|
75
|
-
log.
|
75
|
+
log.debug " Foreign Key Constraint `#{foreign_key_constraint_name}` description does not match"
|
76
76
|
@generator.set_foreign_key_constraint_comment foreign_key_constraint
|
77
77
|
end
|
78
78
|
end
|
@@ -11,10 +11,10 @@ module DynamicMigrations
|
|
11
11
|
module Indexes
|
12
12
|
def process_indexes schema_name, table_name, configuration_indexes, database_indexes
|
13
13
|
# process all the indexes
|
14
|
-
log.
|
14
|
+
log.debug " Processing Indexes"
|
15
15
|
index_names = (configuration_indexes.keys + database_indexes.keys).uniq
|
16
16
|
index_names.each do |index_name|
|
17
|
-
log.
|
17
|
+
log.debug " Processing Index #{index_name}"
|
18
18
|
process_index schema_name, table_name, index_name, configuration_indexes[index_name] || {}, database_indexes[index_name] || {}
|
19
19
|
end
|
20
20
|
end
|
@@ -23,7 +23,7 @@ module DynamicMigrations
|
|
23
23
|
# If the index exists in the configuration but not in the database
|
24
24
|
# then we have to create it.
|
25
25
|
if configuration_index[:exists] == true && !database_index[:exists]
|
26
|
-
log.
|
26
|
+
log.debug " Index `#{index_name}` exists in configuration but not in the database"
|
27
27
|
|
28
28
|
# a migration to create the index
|
29
29
|
index = @database.configured_schema(schema_name).table(table_name).index(index_name)
|
@@ -32,7 +32,7 @@ module DynamicMigrations
|
|
32
32
|
# If the schema exists in the database but not in the configuration
|
33
33
|
# then we need to delete it.
|
34
34
|
elsif database_index[:exists] == true && !configuration_index[:exists]
|
35
|
-
log.
|
35
|
+
log.debug " Index `#{index_name}` exists in database but not in the configuration"
|
36
36
|
|
37
37
|
# a migration to create the index
|
38
38
|
index = @database.loaded_schema(schema_name).table(table_name).index(index_name)
|
@@ -42,9 +42,9 @@ module DynamicMigrations
|
|
42
42
|
# but the definition (except description, which is handled seeprately below) is different
|
43
43
|
# then we need to update the definition.
|
44
44
|
elsif configuration_index.except(:exists, :description).filter { |name, attributes| attributes[:matches] == false }.any?
|
45
|
-
log.
|
45
|
+
log.debug " Index `#{index_name}` exists in both configuration and the database"
|
46
46
|
|
47
|
-
log.
|
47
|
+
log.debug " Index `#{index_name}` is different"
|
48
48
|
# rebild the index
|
49
49
|
original_index = @database.loaded_schema(schema_name).table(table_name).index(index_name)
|
50
50
|
updated_index = @database.configured_schema(schema_name).table(table_name).index(index_name)
|
@@ -53,10 +53,10 @@ module DynamicMigrations
|
|
53
53
|
if configuration_index[:description][:matches] == false
|
54
54
|
# if the description was removed
|
55
55
|
if configuration_index[:description].nil?
|
56
|
-
log.
|
56
|
+
log.debug " Index `#{index_name}` description exists in database but not in the configuration"
|
57
57
|
@generator.remove_index_comment updated_index
|
58
58
|
else
|
59
|
-
log.
|
59
|
+
log.debug " Index `#{index_name}` does not match"
|
60
60
|
@generator.set_index_comment updated_index
|
61
61
|
end
|
62
62
|
end
|
@@ -64,15 +64,15 @@ module DynamicMigrations
|
|
64
64
|
# If the index exists in both the configuration and database representations
|
65
65
|
# but the description is different then we need to update the description.
|
66
66
|
elsif configuration_index[:description][:matches] == false
|
67
|
-
log.
|
67
|
+
log.debug " Index `#{index_name}` exists in both configuration and the database"
|
68
68
|
|
69
69
|
index = @database.configured_schema(schema_name).table(table_name).index(index_name)
|
70
70
|
# if the description was removed
|
71
71
|
if configuration_index[:description].nil?
|
72
|
-
log.
|
72
|
+
log.debug " Index `#{index_name}` description exists in database but not in the configuration"
|
73
73
|
@generator.remove_index_comment index
|
74
74
|
else
|
75
|
-
log.
|
75
|
+
log.debug " Index `#{index_name}` description does not match"
|
76
76
|
@generator.set_index_comment index
|
77
77
|
end
|
78
78
|
end
|
@@ -10,14 +10,14 @@ module DynamicMigrations
|
|
10
10
|
module Tables
|
11
11
|
module PrimaryKey
|
12
12
|
def process_primary_key schema_name, table_name, configuration_primary_key, database_primary_key
|
13
|
-
log.
|
13
|
+
log.debug " Processing Primary Key"
|
14
14
|
configuration_primary_key_exists = configuration_primary_key && configuration_primary_key[:exists]
|
15
15
|
database_primary_key_exists = database_primary_key && database_primary_key[:exists]
|
16
16
|
|
17
17
|
# If the primary_key exists in the configuration but not in the database
|
18
18
|
# then we have to create it.
|
19
19
|
if configuration_primary_key_exists == true && database_primary_key_exists == false
|
20
|
-
log.
|
20
|
+
log.debug " Primary Key exists in configuration but not in the database"
|
21
21
|
|
22
22
|
# a migration to create the primary_key
|
23
23
|
primary_key = @database.configured_schema(schema_name).table(table_name).primary_key
|
@@ -26,7 +26,7 @@ module DynamicMigrations
|
|
26
26
|
# If the schema exists in the database but not in the configuration
|
27
27
|
# then we need to delete it.
|
28
28
|
elsif configuration_primary_key_exists == false && database_primary_key_exists == true
|
29
|
-
log.
|
29
|
+
log.debug " Primary Key exists in database but not in the configuration"
|
30
30
|
|
31
31
|
# a migration to create the primary_key
|
32
32
|
primary_key = @database.loaded_schema(schema_name).table(table_name).primary_key
|
@@ -34,18 +34,18 @@ module DynamicMigrations
|
|
34
34
|
|
35
35
|
# If the primary_key exists in both the configuration and database representations
|
36
36
|
elsif configuration_primary_key_exists == true && database_primary_key_exists == true
|
37
|
-
log.
|
37
|
+
log.debug " Primary Key exists in both configuration and the database"
|
38
38
|
|
39
39
|
# If the definition (i.e. the column names) is different then we need to update the primary key.
|
40
40
|
if configuration_primary_key.except(:exists, :description).filter { |name, attributes| attributes[:matches] == false }.any?
|
41
|
-
log.
|
41
|
+
log.debug " Primary Key is different"
|
42
42
|
# recreate the primary_key
|
43
43
|
original_primary_key = @database.loaded_schema(schema_name).table(table_name).primary_key
|
44
44
|
updated_primary_key = @database.configured_schema(schema_name).table(table_name).primary_key
|
45
45
|
@generator.recreate_primary_key original_primary_key, updated_primary_key
|
46
46
|
end
|
47
47
|
else
|
48
|
-
log.
|
48
|
+
log.debug " Primary Key does not exist in either configuration or database"
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
@@ -10,11 +10,11 @@ module DynamicMigrations
|
|
10
10
|
module Tables
|
11
11
|
module Triggers
|
12
12
|
def process_triggers schema_name, table_name, configuration_triggers, database_triggers
|
13
|
-
log.
|
13
|
+
log.debug " Processing Triggers"
|
14
14
|
# process all the triggers
|
15
15
|
trigger_names = (configuration_triggers.keys + database_triggers.keys).uniq
|
16
16
|
trigger_names.each do |trigger_name|
|
17
|
-
log.
|
17
|
+
log.debug " Processing Trigger #{trigger_name}"
|
18
18
|
process_trigger schema_name, table_name, trigger_name, configuration_triggers[trigger_name] || {}, database_triggers[trigger_name] || {}
|
19
19
|
end
|
20
20
|
end
|
@@ -23,7 +23,7 @@ module DynamicMigrations
|
|
23
23
|
# If the trigger exists in the configuration but not in the database
|
24
24
|
# then we have to create it.
|
25
25
|
if configuration_trigger[:exists] == true && !database_trigger[:exists]
|
26
|
-
log.
|
26
|
+
log.debug " Trigger `#{trigger_name}` exists in configuration but not in the database"
|
27
27
|
|
28
28
|
# a migration to create the trigger
|
29
29
|
trigger = @database.configured_schema(schema_name).table(table_name).trigger(trigger_name)
|
@@ -32,7 +32,7 @@ module DynamicMigrations
|
|
32
32
|
# If the schema exists in the database but not in the configuration
|
33
33
|
# then we need to delete it.
|
34
34
|
elsif database_trigger[:exists] == true && !configuration_trigger[:exists]
|
35
|
-
log.
|
35
|
+
log.debug " Trigger `#{trigger_name}` exists in database but not in the configuration"
|
36
36
|
|
37
37
|
# a migration to create the trigger
|
38
38
|
trigger = @database.loaded_schema(schema_name).table(table_name).trigger(trigger_name)
|
@@ -42,9 +42,9 @@ module DynamicMigrations
|
|
42
42
|
# but the definition (except description, which is handled seeprately below) is different
|
43
43
|
# then we need to update the definition.
|
44
44
|
elsif configuration_trigger.except(:exists, :description).filter { |name, attributes| attributes[:matches] == false }.any?
|
45
|
-
log.
|
45
|
+
log.debug " Trigger `#{trigger_name}` exists in both configuration and the database"
|
46
46
|
|
47
|
-
log.
|
47
|
+
log.debug " Trigger `#{trigger_name}` is different"
|
48
48
|
# recreate the trigger
|
49
49
|
original_trigger = @database.loaded_schema(schema_name).table(table_name).trigger(trigger_name)
|
50
50
|
updated_trigger = @database.configured_schema(schema_name).table(table_name).trigger(trigger_name)
|
@@ -53,10 +53,10 @@ module DynamicMigrations
|
|
53
53
|
if configuration_trigger[:description][:matches] == false
|
54
54
|
# if the description was removed
|
55
55
|
if configuration_trigger[:description].nil?
|
56
|
-
log.
|
56
|
+
log.debug " Trigger `#{trigger_name}` description exists in database but not in the configuration"
|
57
57
|
@generator.remove_trigger_comment updated_trigger
|
58
58
|
else
|
59
|
-
log.
|
59
|
+
log.debug " Trigger `#{trigger_name}` description does not match"
|
60
60
|
@generator.set_trigger_comment updated_trigger
|
61
61
|
end
|
62
62
|
end
|
@@ -64,15 +64,15 @@ module DynamicMigrations
|
|
64
64
|
# If the trigger exists in both the configuration and database representations
|
65
65
|
# but the description is different then we need to update the description.
|
66
66
|
elsif configuration_trigger[:description][:matches] == false
|
67
|
-
log.
|
67
|
+
log.debug " Trigger `#{trigger_name}` exists in both configuration and the database"
|
68
68
|
|
69
69
|
trigger = @database.configured_schema(schema_name).table(table_name).trigger(trigger_name)
|
70
70
|
# if the description was removed
|
71
71
|
if configuration_trigger[:description].nil?
|
72
|
-
log.
|
72
|
+
log.debug " Trigger `#{trigger_name}` description exists in database but not in the configuration"
|
73
73
|
@generator.remove_trigger_comment trigger
|
74
74
|
else
|
75
|
-
log.
|
75
|
+
log.debug " Trigger `#{trigger_name}` description does not match"
|
76
76
|
@generator.set_trigger_comment trigger
|
77
77
|
end
|
78
78
|
end
|
@@ -10,11 +10,11 @@ module DynamicMigrations
|
|
10
10
|
module Tables
|
11
11
|
module UniqueConstraints
|
12
12
|
def process_unique_constraints schema_name, table_name, configuration_unique_constraints, database_unique_constraints
|
13
|
-
log.
|
13
|
+
log.debug " Processing Unique Constraints"
|
14
14
|
# process all the unique_constraints
|
15
15
|
unique_constraint_names = (configuration_unique_constraints.keys + database_unique_constraints.keys).uniq
|
16
16
|
unique_constraint_names.each do |unique_constraint_name|
|
17
|
-
log.
|
17
|
+
log.debug " Processing Unique Constraint #{unique_constraint_name}"
|
18
18
|
process_unique_constraint schema_name, table_name, unique_constraint_name, configuration_unique_constraints[unique_constraint_name] || {}, database_unique_constraints[unique_constraint_name] || {}
|
19
19
|
end
|
20
20
|
end
|
@@ -23,7 +23,7 @@ module DynamicMigrations
|
|
23
23
|
# If the unique_constraint exists in the configuration but not in the database
|
24
24
|
# then we have to create it.
|
25
25
|
if configuration_unique_constraint[:exists] == true && !database_unique_constraint[:exists]
|
26
|
-
log.
|
26
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` exists in configuration but not in the database"
|
27
27
|
|
28
28
|
# a migration to create the unique_constraint
|
29
29
|
unique_constraint = @database.configured_schema(schema_name).table(table_name).unique_constraint(unique_constraint_name)
|
@@ -32,7 +32,7 @@ module DynamicMigrations
|
|
32
32
|
# If the schema exists in the database but not in the configuration
|
33
33
|
# then we need to delete it.
|
34
34
|
elsif database_unique_constraint[:exists] == true && !configuration_unique_constraint[:exists]
|
35
|
-
log.
|
35
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` exists in database but not in the configuration"
|
36
36
|
|
37
37
|
# a migration to create the unique_constraint
|
38
38
|
unique_constraint = @database.loaded_schema(schema_name).table(table_name).unique_constraint(unique_constraint_name)
|
@@ -42,9 +42,9 @@ module DynamicMigrations
|
|
42
42
|
# but the definition (except description, which is handled seeprately below) is different
|
43
43
|
# then we need to update the definition.
|
44
44
|
elsif configuration_unique_constraint.except(:exists, :description).filter { |name, attributes| attributes[:matches] == false }.any?
|
45
|
-
log.
|
45
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` exists in both configuration and the database"
|
46
46
|
|
47
|
-
log.
|
47
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` is different"
|
48
48
|
# recreate the unique_constraint
|
49
49
|
original_unique_constraint = @database.loaded_schema(schema_name).table(table_name).unique_constraint(unique_constraint_name)
|
50
50
|
updated_unique_constraint = @database.configured_schema(schema_name).table(table_name).unique_constraint(unique_constraint_name)
|
@@ -53,10 +53,10 @@ module DynamicMigrations
|
|
53
53
|
if configuration_unique_constraint[:description][:matches] == false
|
54
54
|
# if the description was removed
|
55
55
|
if configuration_unique_constraint[:description].nil?
|
56
|
-
log.
|
56
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` description exists in database but not in the configuration"
|
57
57
|
@generator.remove_unique_constraint_comment updated_unique_constraint
|
58
58
|
else
|
59
|
-
log.
|
59
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` description does not match"
|
60
60
|
@generator.set_unique_constraint_comment updated_unique_constraint
|
61
61
|
end
|
62
62
|
end
|
@@ -64,15 +64,15 @@ module DynamicMigrations
|
|
64
64
|
# If the unique_constraint exists in both the configuration and database representations
|
65
65
|
# but the description is different then we need to update the description.
|
66
66
|
elsif configuration_unique_constraint[:description][:matches] == false
|
67
|
-
log.
|
67
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` exists in both configuration and the database"
|
68
68
|
|
69
69
|
unique_constraint = @database.configured_schema(schema_name).table(table_name).unique_constraint(unique_constraint_name)
|
70
70
|
# if the description was removed
|
71
71
|
if configuration_unique_constraint[:description].nil?
|
72
|
-
log.
|
72
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` description exists in database but not in the configuration"
|
73
73
|
@generator.remove_unique_constraint_comment unique_constraint
|
74
74
|
else
|
75
|
-
log.
|
75
|
+
log.debug " Unique Constraint `#{unique_constraint_name}` description does not match"
|
76
76
|
@generator.set_unique_constraint_comment unique_constraint
|
77
77
|
end
|
78
78
|
end
|
@@ -11,10 +11,10 @@ module DynamicMigrations
|
|
11
11
|
module Validations
|
12
12
|
def process_validations schema_name, table_name, configuration_validations, database_validations
|
13
13
|
# process all the validations
|
14
|
-
log.
|
14
|
+
log.debug " Processing Validations"
|
15
15
|
validation_names = (configuration_validations.keys + database_validations.keys).uniq
|
16
16
|
validation_names.each do |validation_name|
|
17
|
-
log.
|
17
|
+
log.debug " Processing Validation #{validation_name}"
|
18
18
|
process_validation schema_name, table_name, validation_name, configuration_validations[validation_name] || {}, database_validations[validation_name] || {}
|
19
19
|
end
|
20
20
|
end
|
@@ -23,7 +23,7 @@ module DynamicMigrations
|
|
23
23
|
# If the validation exists in the configuration but not in the database
|
24
24
|
# then we have to create it.
|
25
25
|
if configuration_validation[:exists] == true && !database_validation[:exists]
|
26
|
-
log.
|
26
|
+
log.debug " Validation `#{validation_name}` exists in configuration but not in the database"
|
27
27
|
|
28
28
|
# a migration to create the validation
|
29
29
|
validation = @database.configured_schema(schema_name).table(table_name).validation(validation_name)
|
@@ -32,7 +32,7 @@ module DynamicMigrations
|
|
32
32
|
# If the schema exists in the database but not in the configuration
|
33
33
|
# then we need to delete it.
|
34
34
|
elsif database_validation[:exists] == true && !configuration_validation[:exists]
|
35
|
-
log.
|
35
|
+
log.debug " Validation `#{validation_name}` exists in database but not in the configuration"
|
36
36
|
|
37
37
|
# a migration to create the validation
|
38
38
|
validation = @database.loaded_schema(schema_name).table(table_name).validation(validation_name)
|
@@ -42,9 +42,9 @@ module DynamicMigrations
|
|
42
42
|
# but the definition (except description, which is handled seeprately below) is different
|
43
43
|
# then we need to update the definition.
|
44
44
|
elsif configuration_validation.except(:exists, :description).filter { |name, attributes| attributes[:matches] == false }.any?
|
45
|
-
log.
|
45
|
+
log.debug " Validation `#{validation_name}` exists in both configuration and the database"
|
46
46
|
|
47
|
-
log.
|
47
|
+
log.debug " Validation `#{validation_name}` is different"
|
48
48
|
# recreate the validation
|
49
49
|
original_validation = @database.loaded_schema(schema_name).table(table_name).validation(validation_name)
|
50
50
|
updated_validation = @database.configured_schema(schema_name).table(table_name).validation(validation_name)
|
@@ -53,10 +53,10 @@ module DynamicMigrations
|
|
53
53
|
if configuration_validation[:description][:matches] == false
|
54
54
|
# if the description was removed
|
55
55
|
if configuration_validation[:description].nil?
|
56
|
-
log.
|
56
|
+
log.debug " Validation `#{validation_name}` description exists in database but not in the configuration"
|
57
57
|
@generator.remove_validation_comment updated_validation
|
58
58
|
else
|
59
|
-
log.
|
59
|
+
log.debug " Validation `#{validation_name}` does not match"
|
60
60
|
@generator.set_validation_comment updated_validation
|
61
61
|
end
|
62
62
|
end
|
@@ -64,15 +64,15 @@ module DynamicMigrations
|
|
64
64
|
# If the validation exists in both the configuration and database representations
|
65
65
|
# but the description is different then we need to update the description.
|
66
66
|
elsif configuration_validation[:description][:matches] == false
|
67
|
-
log.
|
67
|
+
log.debug " Validation `#{validation_name}` exists in both configuration and the database"
|
68
68
|
|
69
69
|
validation = @database.configured_schema(schema_name).table(table_name).validation(validation_name)
|
70
70
|
# if the description was removed
|
71
71
|
if configuration_validation[:description].nil?
|
72
|
-
log.
|
72
|
+
log.debug " Validation `#{validation_name}` description exists in database but not in the configuration"
|
73
73
|
@generator.remove_validation_comment validation
|
74
74
|
else
|
75
|
-
log.
|
75
|
+
log.debug " Validation `#{validation_name}` does not match"
|
76
76
|
@generator.set_validation_comment validation
|
77
77
|
end
|
78
78
|
end
|