dynamic_migrations 3.6.15 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
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