dynamic_migrations 3.6.15 → 3.7.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/lib/dynamic_migrations/active_record/migrators/primary_key.rb +21 -0
  4. data/lib/dynamic_migrations/active_record/migrators.rb +1 -0
  5. data/lib/dynamic_migrations/postgres/generator/primary_key.rb +32 -0
  6. data/lib/dynamic_migrations/postgres/generator/table.rb +20 -4
  7. data/lib/dynamic_migrations/postgres/generator/table_migration.rb +1 -1
  8. data/lib/dynamic_migrations/postgres/generator/validation.rb +0 -4
  9. data/lib/dynamic_migrations/postgres/generator/validation_template_base.rb +5 -3
  10. data/lib/dynamic_migrations/postgres/generator.rb +4 -5
  11. data/lib/dynamic_migrations/postgres/server/database/connection.rb +3 -1
  12. data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/functions.rb +1 -1
  13. data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/foreign_key_constraints.rb +2 -2
  14. data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/indexes.rb +2 -2
  15. data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/triggers.rb +2 -2
  16. data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/unique_constraints.rb +2 -2
  17. data/lib/dynamic_migrations/postgres/server/database/differences/to_migrations/schemas/tables/validations.rb +2 -2
  18. data/lib/dynamic_migrations/postgres/server/database/differences.rb +3 -3
  19. data/lib/dynamic_migrations/postgres/server/database/enums_loader.rb +1 -1
  20. data/lib/dynamic_migrations/postgres/server/database/keys_and_unique_constraints_loader.rb +8 -0
  21. data/lib/dynamic_migrations/postgres/server/database/schema/function.rb +51 -2
  22. data/lib/dynamic_migrations/postgres/server/database/schema/table/column.rb +29 -2
  23. data/lib/dynamic_migrations/postgres/server/database/schema/table/foreign_key_constraint.rb +4 -7
  24. data/lib/dynamic_migrations/postgres/server/database/schema/table/foreign_key_constraints.rb +5 -0
  25. data/lib/dynamic_migrations/postgres/server/database/schema/table/trigger.rb +72 -6
  26. data/lib/dynamic_migrations/postgres/server/database/schema/table/validation.rb +95 -12
  27. data/lib/dynamic_migrations/postgres/server/database/schema/table/validations.rb +1 -1
  28. data/lib/dynamic_migrations/postgres/server/database/schema/table.rb +2 -0
  29. data/lib/dynamic_migrations/postgres/server/database/structure_loader.rb +9 -1
  30. data/lib/dynamic_migrations/postgres/server/database/triggers_and_functions_loader.rb +4 -3
  31. data/lib/dynamic_migrations/postgres/server/database/validations_loader.rb +42 -29
  32. data/lib/dynamic_migrations/postgres/server/database.rb +6 -0
  33. data/lib/dynamic_migrations/version.rb +1 -1
  34. data/lib/dynamic_migrations.rb +1 -0
  35. data/sig/dynamic_migrations/active_record/migrators/primary_key.rbs +18 -0
  36. data/sig/dynamic_migrations/postgres/generator/primary_key.rbs +2 -0
  37. data/sig/dynamic_migrations/postgres/generator/table.rbs +2 -0
  38. data/sig/dynamic_migrations/postgres/generator/validation_template_base.rbs +7 -7
  39. data/sig/dynamic_migrations/postgres/generator.rbs +1 -1
  40. data/sig/dynamic_migrations/postgres/server/database/connection.rbs +1 -1
  41. data/sig/dynamic_migrations/postgres/server/database/keys_and_unique_constraints_loader.rbs +1 -0
  42. data/sig/dynamic_migrations/postgres/server/database/schema/enum.rbs +2 -2
  43. data/sig/dynamic_migrations/postgres/server/database/schema/enums.rbs +1 -1
  44. data/sig/dynamic_migrations/postgres/server/database/schema/function.rbs +9 -0
  45. data/sig/dynamic_migrations/postgres/server/database/schema/table/column.rbs +4 -0
  46. data/sig/dynamic_migrations/postgres/server/database/schema/table/foreign_key_constraint.rbs +0 -3
  47. data/sig/dynamic_migrations/postgres/server/database/schema/table/foreign_key_constraints.rbs +1 -0
  48. data/sig/dynamic_migrations/postgres/server/database/schema/table/trigger.rbs +9 -0
  49. data/sig/dynamic_migrations/postgres/server/database/schema/table/validation.rbs +9 -1
  50. data/sig/dynamic_migrations/postgres/server/database/schema/table/validations.rbs +1 -1
  51. data/sig/dynamic_migrations/postgres/server/database/schema/table.rbs +1 -0
  52. data/sig/dynamic_migrations/postgres/server/database/structure_loader.rbs +1 -0
  53. data/sig/dynamic_migrations/postgres/server/database/validations_loader.rbs +1 -0
  54. data/sig/dynamic_migrations/postgres/server/database.rbs +1 -0
  55. metadata +4 -2
@@ -9,6 +9,8 @@ module DynamicMigrations
9
9
  class Table
10
10
  class Trigger < Source
11
11
  @action_order: Integer?
12
+ @normalized_action_condition: String?
13
+
12
14
  attr_reader table: Table
13
15
  attr_reader name: Symbol
14
16
  attr_reader event_manipulation: Symbol
@@ -26,6 +28,10 @@ module DynamicMigrations
26
28
  def action_order: -> Integer
27
29
  def has_description?: -> false
28
30
  def differences_descriptions: (Trigger other_trigger) -> Array[String]
31
+ def normalized_action_condition: -> String?
32
+
33
+ private
34
+ def fetch_normalized_action_condition: -> String
29
35
 
30
36
  class ExpectedTableError < StandardError
31
37
  end
@@ -56,6 +62,9 @@ module DynamicMigrations
56
62
 
57
63
  class UnexpectedTemplateError < StandardError
58
64
  end
65
+
66
+ class UnnormalizableActionConditionError < StandardError
67
+ end
59
68
  end
60
69
  end
61
70
  end
@@ -6,6 +6,7 @@ module DynamicMigrations
6
6
  class Table
7
7
  class Validation < Source
8
8
  @columns: Hash[Symbol, Column]
9
+ @normalized_check_clause_and_column_names: {check_clause: String, column_names: Array[Symbol]}?
9
10
 
10
11
  attr_reader table: Table
11
12
  attr_reader name: Symbol
@@ -15,13 +16,18 @@ module DynamicMigrations
15
16
  attr_reader description: String?
16
17
  attr_reader template: Symbol?
17
18
 
18
- def initialize: (database_or_configuration source, Table table, Array[Column] columns, Symbol name, String check_clause, ?deferrable: bool, ?initially_deferred: bool, ?description: String?, ?template: Symbol?) -> void
19
+ def initialize: (database_or_configuration source, Table table, Array[Column]? columns, Symbol name, String check_clause, ?deferrable: bool, ?initially_deferred: bool, ?description: String?, ?template: Symbol?) -> void
19
20
  def columns: -> Array[Column]
20
21
  def column_names: -> Array[Symbol]
21
22
  def has_description?: -> bool
22
23
  def differences_descriptions: (Validation other_validation) -> Array[String]
24
+ def normalized_check_clause: -> String
23
25
 
24
26
  private
27
+
28
+ def normalized_check_clause_and_column_names: -> {check_clause: String, column_names: Array[Symbol]}
29
+ def fetch_normalized_check_clause_and_column_names: -> {check_clause: String, column_names: Array[Symbol]}
30
+
25
31
  def add_column: (Column column) -> void
26
32
 
27
33
  class ExpectedTableError < StandardError
@@ -39,6 +45,8 @@ module DynamicMigrations
39
45
  class UnexpectedTemplateError < StandardError
40
46
  end
41
47
 
48
+ class UnnormalizableCheckClauseError < StandardError
49
+ end
42
50
  end
43
51
  end
44
52
  end
@@ -11,7 +11,7 @@ module DynamicMigrations
11
11
  def has_validation?: (Symbol name) -> bool
12
12
  def validations: -> Array[Validation]
13
13
  def validations_hash: -> Hash[Symbol, Validation]
14
- def add_validation: (Symbol name, Array[Symbol] column_names, String check_clause, **untyped) -> untyped
14
+ def add_validation: (Symbol name, Array[Symbol]? column_names, String check_clause, **untyped) -> untyped
15
15
 
16
16
  # these come from the table object (which this module is included into)
17
17
  def source: -> database_or_configuration
@@ -16,6 +16,7 @@ module DynamicMigrations
16
16
  attr_reader schema: Schema
17
17
  attr_reader name: Symbol
18
18
  attr_reader description: String?
19
+ attr_reader remote_foreign_key_constraints: Array[ForeignKeyConstraint]
19
20
  def initialize: (database_or_configuration source, Schema schema, Symbol name, ?description: String?) -> void
20
21
  def has_description?: -> bool
21
22
  def add_primary_key: (Symbol name, Array[Symbol] column_names, **untyped) -> untyped
@@ -8,6 +8,7 @@ module DynamicMigrations
8
8
  def recursively_load_database_structure: -> void
9
9
  def fetch_schema_names: -> Array[String]
10
10
  def fetch_table_names: (Symbol schema_name) -> Array[String]
11
+ def refresh_database_structure_cache: -> void
11
12
 
12
13
  # these come from the database object (which this module is included into)
13
14
  def connection: -> PG::Connection
@@ -5,6 +5,7 @@ module DynamicMigrations
5
5
  module ValidationsLoader
6
6
  def create_database_validations_cache: -> void
7
7
  def fetch_validations: -> Hash[untyped, untyped]
8
+ def refresh_database_validations_cache: -> void
8
9
 
9
10
  # these come from the database object (which this module is included into)
10
11
  def connection: -> PG::Connection
@@ -25,6 +25,7 @@ module DynamicMigrations
25
25
  def initialize: (Server server, Symbol name) -> void
26
26
  def schema: (Symbol schema_name, database_or_configuration source) -> untyped
27
27
  def differences: -> Differences
28
+ def refresh_caches: -> void
28
29
 
29
30
  class ExpectedServerError < StandardError
30
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_migrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.15
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Ulliott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-14 00:00:00.000000000 Z
11
+ date: 2023-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -71,6 +71,7 @@ files:
71
71
  - lib/dynamic_migrations/active_record/migrators/foreign_key_constraint.rb
72
72
  - lib/dynamic_migrations/active_record/migrators/function.rb
73
73
  - lib/dynamic_migrations/active_record/migrators/index.rb
74
+ - lib/dynamic_migrations/active_record/migrators/primary_key.rb
74
75
  - lib/dynamic_migrations/active_record/migrators/table.rb
75
76
  - lib/dynamic_migrations/active_record/migrators/trigger.rb
76
77
  - lib/dynamic_migrations/active_record/migrators/unique_constraint.rb
@@ -162,6 +163,7 @@ files:
162
163
  - sig/dynamic_migrations/active_record/migrators/foreign_key_constraint.rbs
163
164
  - sig/dynamic_migrations/active_record/migrators/function.rbs
164
165
  - sig/dynamic_migrations/active_record/migrators/index.rbs
166
+ - sig/dynamic_migrations/active_record/migrators/primary_key.rbs
165
167
  - sig/dynamic_migrations/active_record/migrators/table.rbs
166
168
  - sig/dynamic_migrations/active_record/migrators/trigger.rbs
167
169
  - sig/dynamic_migrations/active_record/migrators/unique_constraint.rbs