dynamic_migrations 3.5.1 → 3.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/columns.rb +2 -2
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/foreign_key_constraints.rb +2 -2
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/indexes.rb +2 -2
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/triggers.rb +2 -2
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/unique_constraints.rb +2 -2
- data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/validations.rb +2 -2
- data/lib/dynamic_migrations/postgres/server/database/loaded_schemas.rb +7 -3
- data/lib/dynamic_migrations/postgres/server/database/schema/table/trigger.rb +2 -1
- data/lib/dynamic_migrations/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d618a9b98ed9b0f378f6e4342c57e6df554df34c600572a6aa55db61dbb32fad
|
4
|
+
data.tar.gz: a90d7e5fa28aa0f4dbc2d42a7545ed6207bc800baba766dd23c9bc0e73cfd0c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33c0b803f4a4a01aff67b258ade285c2acf0420c0c611b918cf24405f5081497050bdcb726532b01fe4d832a086d15a4b37dc5a03c445772e7b6e863edd795c6
|
7
|
+
data.tar.gz: 7a00457cdb78107f62c43bd74647513817c1fbb0e4dbbc92bdc458aefc02030980fd074d03f2ada4399dd442f4152098024a492839fe98ccba2ad16ad4508356
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [3.5.2](https://github.com/craigulliott/dynamic_migrations/compare/v3.5.1...v3.5.2) (2023-09-11)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* accepting nil or false for existence check when calculating differences (because if the schema doesn't exist we wont have table objects to test against) ([c4112cc](https://github.com/craigulliott/dynamic_migrations/commit/c4112cccb5a887b78e15182cdb8bcfdbd80fd0c0))
|
9
|
+
|
3
10
|
## [3.5.1](https://github.com/craigulliott/dynamic_migrations/compare/v3.5.0...v3.5.1) (2023-09-11)
|
4
11
|
|
5
12
|
|
@@ -20,14 +20,14 @@ module DynamicMigrations
|
|
20
20
|
def process_column schema_name, table_name, column_name, configuration_column, database_column
|
21
21
|
# If the column exists in the configuration but not in the database
|
22
22
|
# then we have to create it.
|
23
|
-
if configuration_column[:exists] == true && database_column[:exists]
|
23
|
+
if configuration_column[:exists] == true && !database_column[:exists]
|
24
24
|
# a migration to create the column
|
25
25
|
column = @database.configured_schema(schema_name).table(table_name).column(column_name)
|
26
26
|
@generator.add_column column
|
27
27
|
|
28
28
|
# If the schema exists in the database but not in the configuration
|
29
29
|
# then we need to delete it.
|
30
|
-
elsif
|
30
|
+
elsif database_column[:exists] == true && !configuration_column[:exists]
|
31
31
|
# a migration to create the column
|
32
32
|
column = @database.loaded_schema(schema_name).table(table_name).column(column_name)
|
33
33
|
@generator.remove_column column
|
@@ -20,14 +20,14 @@ module DynamicMigrations
|
|
20
20
|
def process_foreign_key_constraint schema_name, table_name, foreign_key_constraint_name, configuration_foreign_key_constraint, database_foreign_key_constraint
|
21
21
|
# If the foreign_key_constraint exists in the configuration but not in the database
|
22
22
|
# then we have to create it.
|
23
|
-
if configuration_foreign_key_constraint[:exists] == true && database_foreign_key_constraint[:exists]
|
23
|
+
if configuration_foreign_key_constraint[:exists] == true && !database_foreign_key_constraint[:exists]
|
24
24
|
# a migration to create the foreign_key_constraint
|
25
25
|
foreign_key_constraint = @database.configured_schema(schema_name).table(table_name).foreign_key_constraint(foreign_key_constraint_name)
|
26
26
|
@generator.add_foreign_key_constraint foreign_key_constraint
|
27
27
|
|
28
28
|
# If the schema exists in the database but not in the configuration
|
29
29
|
# then we need to delete it.
|
30
|
-
elsif
|
30
|
+
elsif database_foreign_key_constraint[:exists] == true && !configuration_foreign_key_constraint[:exists]
|
31
31
|
# a migration to create the foreign_key_constraint
|
32
32
|
foreign_key_constraint = @database.loaded_schema(schema_name).table(table_name).foreign_key_constraint(foreign_key_constraint_name)
|
33
33
|
@generator.remove_foreign_key_constraint foreign_key_constraint
|
@@ -20,14 +20,14 @@ module DynamicMigrations
|
|
20
20
|
def process_index schema_name, table_name, index_name, configuration_index, database_index
|
21
21
|
# If the index exists in the configuration but not in the database
|
22
22
|
# then we have to create it.
|
23
|
-
if configuration_index[:exists] == true && database_index[:exists]
|
23
|
+
if configuration_index[:exists] == true && !database_index[:exists]
|
24
24
|
# a migration to create the index
|
25
25
|
index = @database.configured_schema(schema_name).table(table_name).index(index_name)
|
26
26
|
@generator.add_index index
|
27
27
|
|
28
28
|
# If the schema exists in the database but not in the configuration
|
29
29
|
# then we need to delete it.
|
30
|
-
elsif
|
30
|
+
elsif database_index[:exists] == true && !configuration_index[:exists]
|
31
31
|
# a migration to create the index
|
32
32
|
index = @database.loaded_schema(schema_name).table(table_name).index(index_name)
|
33
33
|
@generator.remove_index index
|
@@ -20,14 +20,14 @@ module DynamicMigrations
|
|
20
20
|
def process_trigger schema_name, table_name, trigger_name, configuration_trigger, database_trigger
|
21
21
|
# If the trigger exists in the configuration but not in the database
|
22
22
|
# then we have to create it.
|
23
|
-
if configuration_trigger[:exists] == true && database_trigger[:exists]
|
23
|
+
if configuration_trigger[:exists] == true && !database_trigger[:exists]
|
24
24
|
# a migration to create the trigger
|
25
25
|
trigger = @database.configured_schema(schema_name).table(table_name).trigger(trigger_name)
|
26
26
|
@generator.add_trigger trigger
|
27
27
|
|
28
28
|
# If the schema exists in the database but not in the configuration
|
29
29
|
# then we need to delete it.
|
30
|
-
elsif
|
30
|
+
elsif database_trigger[:exists] == true && !configuration_trigger[:exists]
|
31
31
|
# a migration to create the trigger
|
32
32
|
trigger = @database.loaded_schema(schema_name).table(table_name).trigger(trigger_name)
|
33
33
|
@generator.remove_trigger trigger
|
@@ -20,14 +20,14 @@ module DynamicMigrations
|
|
20
20
|
def process_unique_constraint schema_name, table_name, unique_constraint_name, configuration_unique_constraint, database_unique_constraint
|
21
21
|
# If the unique_constraint exists in the configuration but not in the database
|
22
22
|
# then we have to create it.
|
23
|
-
if configuration_unique_constraint[:exists] == true && database_unique_constraint[:exists]
|
23
|
+
if configuration_unique_constraint[:exists] == true && !database_unique_constraint[:exists]
|
24
24
|
# a migration to create the unique_constraint
|
25
25
|
unique_constraint = @database.configured_schema(schema_name).table(table_name).unique_constraint(unique_constraint_name)
|
26
26
|
@generator.add_unique_constraint unique_constraint
|
27
27
|
|
28
28
|
# If the schema exists in the database but not in the configuration
|
29
29
|
# then we need to delete it.
|
30
|
-
elsif
|
30
|
+
elsif database_unique_constraint[:exists] == true && !configuration_unique_constraint[:exists]
|
31
31
|
# a migration to create the unique_constraint
|
32
32
|
unique_constraint = @database.loaded_schema(schema_name).table(table_name).unique_constraint(unique_constraint_name)
|
33
33
|
@generator.remove_unique_constraint unique_constraint
|
@@ -20,14 +20,14 @@ module DynamicMigrations
|
|
20
20
|
def process_validation schema_name, table_name, validation_name, configuration_validation, database_validation
|
21
21
|
# If the validation exists in the configuration but not in the database
|
22
22
|
# then we have to create it.
|
23
|
-
if configuration_validation[:exists] == true && database_validation[:exists]
|
23
|
+
if configuration_validation[:exists] == true && !database_validation[:exists]
|
24
24
|
# a migration to create the validation
|
25
25
|
validation = @database.configured_schema(schema_name).table(table_name).validation(validation_name)
|
26
26
|
@generator.add_validation validation
|
27
27
|
|
28
28
|
# If the schema exists in the database but not in the configuration
|
29
29
|
# then we need to delete it.
|
30
|
-
elsif
|
30
|
+
elsif database_validation[:exists] == true && !configuration_validation[:exists]
|
31
31
|
# a migration to create the validation
|
32
32
|
validation = @database.loaded_schema(schema_name).table(table_name).validation(validation_name)
|
33
33
|
@generator.remove_validation validation
|
@@ -15,7 +15,7 @@ module DynamicMigrations
|
|
15
15
|
def add_loaded_schema schema_name
|
16
16
|
raise ExpectedSymbolError, schema_name unless schema_name.is_a? Symbol
|
17
17
|
if has_loaded_schema? schema_name
|
18
|
-
raise
|
18
|
+
raise LoadedSchemaAlreadyExistsError, "Loaded schema #{schema_name} already exists"
|
19
19
|
end
|
20
20
|
included_target = self
|
21
21
|
if included_target.is_a? Database
|
@@ -36,8 +36,12 @@ module DynamicMigrations
|
|
36
36
|
# returns the loaded schema object for the provided schema name, and raises an
|
37
37
|
# error if the schema does not exist
|
38
38
|
def loaded_schema schema_name
|
39
|
-
|
40
|
-
|
39
|
+
unless schema_name.is_a? Symbol
|
40
|
+
raise ExpectedSymbolError, schema_name
|
41
|
+
end
|
42
|
+
unless has_loaded_schema? schema_name
|
43
|
+
raise LoadedSchemaDoesNotExistError, "Loaded schema `#{schema_name}` does not exist"
|
44
|
+
end
|
41
45
|
@loaded_schemas[schema_name]
|
42
46
|
end
|
43
47
|
|
@@ -88,7 +88,8 @@ module DynamicMigrations
|
|
88
88
|
end
|
89
89
|
@action_condition = action_condition&.strip
|
90
90
|
|
91
|
-
|
91
|
+
is_comma_sperated_list_of_strings = (parameters.is_a?(String) && parameters[/\A'[\w\d_ -]+'(, ?'[\w\d_ -]+')*\z/])
|
92
|
+
unless parameters.nil? || is_comma_sperated_list_of_strings
|
92
93
|
raise UnexpectedParametersError, "unexpected parameters `#{parameters}`, currently only a comma seeparated list of strings is supported"
|
93
94
|
end
|
94
95
|
@parameters = parameters&.strip
|