Packages

ash_postgres

2.5.1
2.10.0 2.9.1 2.9.0 2.8.0 2.7.0 2.6.32 2.6.31 2.6.30 2.6.29 2.6.28 2.6.27 2.6.26 2.6.25 2.6.24 2.6.23 2.6.22 2.6.21 2.6.20 2.6.19 2.6.18 2.6.17 2.6.16 2.6.15 2.6.14 2.6.13 2.6.12 2.6.11 2.6.10 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.6.2 2.6.1 2.6.0 2.5.22 2.5.21 2.5.20 2.5.19 2.5.18 2.5.17 2.5.16 2.5.15 2.5.14 2.5.13 2.5.12 2.5.11 2.5.10 2.5.9 2.5.8 2.5.7 2.5.6 2.5.5 2.5.4 2.5.3 2.5.2 2.5.1 2.5.0 2.4.21 2.4.20 2.4.19 2.4.18 2.4.17 2.4.16 2.4.15 2.4.14 2.4.13 2.4.12 2.4.11 2.4.10 2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4.0 2.3.1 2.3.0 2.2.5 2.2.4 2.2.3 2.2.2 2.2.1 2.2.0 2.1.19 2.1.18 2.1.17 2.1.15 2.1.14 2.1.13 2.1.12 2.1.11 2.1.10 2.1.9 2.1.8 2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.1 2.1.0 2.0.12 2.0.11 2.0.10 2.0.9 2.0.8 2.0.7 2.0.6 2.0.5 2.0.4 2.0.3 2.0.2 2.0.1 2.0.0 2.0.0-rc.15 2.0.0-rc.14 2.0.0-rc.13 2.0.0-rc.12 2.0.0-rc.11 2.0.0-rc.10 2.0.0-rc.9 2.0.0-rc.8 2.0.0-rc.7 2.0.0-rc.6 2.0.0-rc.5 2.0.0-rc.4 2.0.0-rc.3 2.0.0-rc.2 2.0.0-rc.1 2.0.0-rc.0 1.5.30 1.5.29 1.5.28 1.5.27 1.5.26 1.5.25 1.5.24 1.5.23 1.5.22 1.5.21 1.5.20 1.5.19 1.5.18 1.5.17 1.5.16 1.5.15 1.5.14 1.5.13 1.5.12 1.5.11 1.5.10 1.5.9 1.5.8 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 1.4.0 1.3.68 1.3.67 1.3.66 1.3.65 1.3.64 1.3.63 1.3.62 1.3.61 1.3.60 1.3.59 1.3.58 1.3.56 1.3.55 1.3.54 1.3.53 1.3.52 1.3.51 1.3.50 1.3.49 1.3.48 1.3.47 1.3.46 1.3.45 1.3.44 1.3.43 1.3.42 1.3.41 1.3.40 1.3.39 1.3.38 1.3.37 1.3.36 1.3.35 1.3.34 1.3.33 1.3.32 1.3.31 1.3.30 1.3.29 1.3.28 1.3.26 1.3.25 1.3.24 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 1.3.18 1.3.17 1.3.16 1.3.15 1.3.14 1.3.12 1.3.11 1.3.10 1.3.9 1.3.8 1.3.6 1.3.5 1.3.4 1.3.3 1.3.2 1.3.1 1.3.0 1.3.0-rc.4 1.3.0-rc.3 1.3.0-rc.2 1.3.0-rc.0 1.2.6 1.2.5 1.2.4 1.2.3 1.2.2 1.2.1 1.2.0 1.2.0-rc.1 1.2.0-rc.0 1.1.3 1.1.2 1.1.1 1.1.0 1.0.0 1.0.0-rc.9 1.0.0-rc.8 1.0.0-rc.7 1.0.0-rc.6 1.0.0-rc.5 1.0.0-rc.4 1.0.0-rc.3 1.0.0-rc.2 1.0.0-rc.1 1.0.0-rc.0 1.0.0-pre.3 1.0.0-pre.2 1.0.0-pre.1 1.0.0-pre.0 0.43.0 0.42.0-rc.7 0.42.0-rc.6 0.42.0-rc.5 0.42.0-rc.4 0.42.0-rc.3 0.42.0-rc.1 0.42.0-rc.0 0.41.7 0.41.6 0.41.5 0.41.4 0.41.3 0.41.2 0.41.1 0.41.0-rc0 retired 0.41.0-rc.9 0.41.0-rc.8 0.41.0-rc.7 0.41.0-rc.6 0.41.0-rc.5 0.41.0-rc.4 0.41.0-rc.3 0.41.0-rc.2 0.41.0-rc.1 0.41.0-rc.0 0.40.11 0.40.10 0.40.9 0.40.8 0.40.7 0.40.6 0.40.5 0.40.4 0.40.3 0.40.2 0.40.1 0.40.0-rc5 0.40.0-rc4 0.40.0-rc3 0.40.0-rc2 0.40.0-rc1 0.39.0-rc0 0.38.11 0.38.10 0.38.9 0.38.8 0.38.7 0.38.6 0.38.5 0.38.4 0.38.3 0.38.2 0.38.1 0.38.0 0.37.8 0.37.7 0.37.6 0.37.5 0.37.4 0.37.3 0.37.2 0.37.1 0.37.0 0.36.5 0.36.4 0.36.3 0.36.2 0.36.1 0.36.0 0.35.5 0.35.4 0.35.3 0.35.1 0.34.5 0.34.4 0.34.3 0.34.2 0.34.1 0.34.0 0.33.1 0.33.0 0.32.2 0.32.1 0.32.0 0.31.1 0.30.1 0.29.6 0.29.5 0.29.4 0.29.3 0.29.2 0.29.1 0.28.1 0.28.0 0.27.0 0.26.2 0.26.1 0.26.0 0.25.5 0.25.4 0.25.3 0.25.2 0.25.1 0.25.0 0.24.0 0.23.2 0.23.1 0.23.0 0.22.1 0.22.0 0.21.0 0.20.1 0.20.0 0.19.0 0.18.0 0.17.0 0.16.1 0.15.0 0.14.0 0.13.0 0.12.1 0.12.0 0.11.2 0.10.0 0.9.0 0.8.0 0.7.0 0.6.0 0.5.0 0.4.0 0.3.0 0.2.1 0.2.0 0.1.4 0.1.3 0.1.2 0.1.1 0.1.1-rc.2 0.1.1-rc.1 0.1.1-rc.0 0.1.0

The PostgreSQL data layer for Ash Framework

Current section

409 Versions

Jump to

Compare versions

6 files changed
+96 additions
-74 deletions
  @@ -5,6 +5,15 @@ See [Conventional Commits](https://www.conventionalcommits.org) for commit guide
5 5
6 6 <!-- changelog -->
7 7
8 + ## [v2.5.1](https://github.com/ash-project/ash_postgres/compare/v2.5.0...v2.5.1) (2025-01-27)
9 +
10 +
11 +
12 +
13 + ### Bug Fixes:
14 +
15 + * handle cross global to tenant references in migration generator
16 +
8 17 ## [v2.5.0](https://github.com/ash-project/ash_postgres/compare/v2.4.22...v2.5.0) (2025-01-20)
  @@ -1,7 +1,7 @@
1 1 <!--
2 2 This file was generated by Spark. Do not edit it by hand.
3 3 -->
4 - # DSL: AshPostgres.DataLayer
4 + # AshPostgres.DataLayer
5 5
6 6 A postgres data layer that leverages Ecto's postgres capabilities.
7 7
  @@ -58,7 +58,7 @@ end
58 58 | [`polymorphic?`](#postgres-polymorphic?){: #postgres-polymorphic? } | `boolean` | `false` | Declares this resource as polymorphic. See the [polymorphic resources guide](/documentation/topics/resources/polymorphic-resources.md) for more. |
59 59
60 60
61 - ## postgres.custom_indexes
61 + ### postgres.custom_indexes
62 62 A section for configuring indexes to be created by the migration generator.
63 63
64 64 In general, prefer to use `identities` for simple unique constraints. This is a tool to allow
  @@ -80,7 +80,7 @@ end
80 80
81 81
82 82
83 - ## postgres.custom_indexes.index
83 + ### postgres.custom_indexes.index
84 84 ```elixir
85 85 index fields
86 86 ```
  @@ -128,7 +128,7 @@ index ["column", "column2"], unique: true, where: "thing = TRUE"
128 128 Target: `AshPostgres.CustomIndex`
129 129
130 130
131 - ## postgres.custom_statements
131 + ### postgres.custom_statements
132 132 A section for configuring custom statements to be added to migrations.
133 133
134 134 Changing custom statements may require manual intervention, because Ash can't determine what order they should run
  @@ -161,7 +161,7 @@ end
161 161
162 162
163 163
164 - ## postgres.custom_statements.statement
164 + ### postgres.custom_statements.statement
165 165 ```elixir
166 166 statement name
167 167 ```
  @@ -205,7 +205,7 @@ end
205 205 Target: `AshPostgres.Statement`
206 206
207 207
208 - ## postgres.manage_tenant
208 + ### postgres.manage_tenant
209 209 Configuration for the behavior of a resource that manages a tenant
210 210
211 211
  @@ -235,7 +235,7 @@ end
235 235
236 236
237 237
238 - ## postgres.references
238 + ### postgres.references
239 239 A section for configuring the references (foreign keys) in resource migrations.
240 240
241 241 This section is only relevant if you are using the migration generator with this resource.
  @@ -266,7 +266,7 @@ end
266 266
267 267
268 268
269 - ## postgres.references.reference
269 + ### postgres.references.reference
270 270 ```elixir
271 271 reference relationship
272 272 ```
  @@ -317,7 +317,7 @@ reference :post, on_delete: :delete, on_update: :update, name: "comments_to_post
317 317 Target: `AshPostgres.Reference`
318 318
319 319
320 - ## postgres.check_constraints
320 + ### postgres.check_constraints
321 321 A section for configuring the check constraints for a given table.
322 322
323 323 This can be used to automatically create those check constraints, or just to provide message when they are raised
  @@ -338,7 +338,7 @@ end
338 338
339 339
340 340
341 - ## postgres.check_constraints.check_constraint
341 + ### postgres.check_constraints.check_constraint
342 342 ```elixir
343 343 check_constraint attribute, name
344 344 ```
  @@ -2,70 +2,70 @@
2 2 [{<<"Changelog">>,<<"https://hexdocs.pm/ash_postgres/changelog.html">>},
3 3 {<<"GitHub">>,<<"https://github.com/ash-project/ash_postgres">>}]}.
4 4 {<<"name">>,<<"ash_postgres">>}.
5 - {<<"version">>,<<"2.5.0">>}.
5 + {<<"version">>,<<"2.5.1">>}.
6 6 {<<"description">>,<<"The PostgreSQL data layer for Ash Framework">>}.
7 7 {<<"elixir">>,<<"~> 1.13">>}.
8 + {<<"app">>,<<"ash_postgres">>}.
9 + {<<"licenses">>,[<<"MIT">>]}.
8 10 {<<"files">>,
9 - [<<"lib">>,<<"lib/statement.ex">>,<<"lib/types">>,
10 - <<"lib/types/ci_string_wrapper.ex">>,<<"lib/types/ltree.ex">>,
11 - <<"lib/types/timestamptz.ex">>,<<"lib/types/tsvector.ex">>,
12 - <<"lib/types/timestamptz_usec.ex">>,<<"lib/types/tsquery.ex">>,
13 - <<"lib/types/string_wrapper.ex">>,<<"lib/custom_aggregate.ex">>,
14 - <<"lib/migration_generator">>,<<"lib/migration_generator/operation.ex">>,
15 - <<"lib/migration_generator/phase.ex">>,
16 - <<"lib/migration_generator/ash_functions.ex">>,
17 - <<"lib/migration_generator/migration_generator.ex">>,
18 - <<"lib/check_constraint.ex">>,<<"lib/type.ex">>,<<"lib/igniter.ex">>,
19 - <<"lib/manual_relationship.ex">>,<<"lib/ash_postgres.ex">>,
20 - <<"lib/verifiers">>,<<"lib/verifiers/validate_references.ex">>,
21 - <<"lib/verifiers/prevent_multidimensional_array_aggregates.ex">>,
22 - <<"lib/verifiers/prevent_attribute_multitenancy_and_non_full_match_type.ex">>,
23 - <<"lib/verifiers/ensure_table_or_polymorphic.ex">>,
24 - <<"lib/verifiers/validate_identity_index_names.ex">>,<<"lib/mix">>,
25 - <<"lib/mix/tasks">>,<<"lib/mix/tasks/ash_postgres.drop.ex">>,
26 - <<"lib/mix/tasks/ash_postgres.generate_migrations.ex">>,
11 + [<<"lib">>,<<"lib/custom_aggregate.ex">>,<<"lib/mix">>,<<"lib/mix/tasks">>,
27 12 <<"lib/mix/tasks/ash_postgres.rollback.ex">>,
28 - <<"lib/mix/tasks/ash_postgres.gen.resources.ex">>,
29 13 <<"lib/mix/tasks/ash_postgres.squash_snapshots.ex">>,
14 + <<"lib/mix/tasks/ash_postgres.generate_migrations.ex">>,
15 + <<"lib/mix/tasks/ash_postgres.gen.resources.ex">>,
16 + <<"lib/mix/tasks/ash_postgres.install.ex">>,
17 + <<"lib/mix/tasks/ash_postgres.drop.ex">>,
30 18 <<"lib/mix/tasks/ash_postgres.migrate.ex">>,
31 - <<"lib/mix/tasks/ash_postgres.create.ex">>,
32 - <<"lib/mix/tasks/ash_postgres.install.ex">>,<<"lib/mix/helpers.ex">>,
33 - <<"lib/version_agent.ex">>,<<"lib/extensions">>,
34 - <<"lib/extensions/vector.ex">>,<<"lib/custom_extension.ex">>,
35 - <<"lib/migration.ex">>,<<"lib/migration_compile_cache.ex">>,
36 - <<"lib/resource_generator">>,
37 - <<"lib/resource_generator/resource_generator.ex">>,
38 - <<"lib/resource_generator/spec.ex">>,
39 - <<"lib/resource_generator/sensitive_data.ex">>,<<"lib/data_layer">>,
40 - <<"lib/data_layer/info.ex">>,<<"lib/custom_index.ex">>,<<"lib/functions">>,
19 + <<"lib/mix/tasks/ash_postgres.create.ex">>,<<"lib/mix/helpers.ex">>,
20 + <<"lib/repo.ex">>,<<"lib/manual_relationship.ex">>,<<"lib/functions">>,
21 + <<"lib/functions/binding.ex">>,<<"lib/functions/ilike.ex">>,
41 22 <<"lib/functions/like.ex">>,<<"lib/functions/vector_cosine_distance.ex">>,
42 - <<"lib/functions/ilike.ex">>,<<"lib/functions/binding.ex">>,
43 - <<"lib/functions/trigram_similarity.ex">>,<<"lib/multitenancy.ex">>,
44 - <<"lib/repo.ex">>,<<"lib/repo">>,<<"lib/repo/before_compile.ex">>,
45 - <<"lib/sql_implementation.ex">>,<<"lib/reference.ex">>,
46 - <<"lib/data_layer.ex">>,<<"lib/ecto_migration_default.ex">>,
47 - <<".formatter.exs">>,<<"mix.exs">>,<<"README.md">>,<<"LICENSE">>,
48 - <<"CHANGELOG.md">>,<<"documentation">>,<<"documentation/1.0-CHANGELOG.md">>,
49 - <<"documentation/tutorials">>,
50 - <<"documentation/tutorials/get-started-with-ash-postgres.md">>,
51 - <<"documentation/tutorials/set-up-with-existing-database.md">>,
52 - <<"documentation/dsls">>,
53 - <<"documentation/dsls/DSL-AshPostgres.DataLayer.md">>,
54 - <<"documentation/topics">>,<<"documentation/topics/advanced">>,
55 - <<"documentation/topics/advanced/manual-relationships.md">>,
23 + <<"lib/functions/trigram_similarity.ex">>,<<"lib/resource_generator">>,
24 + <<"lib/resource_generator/resource_generator.ex">>,
25 + <<"lib/resource_generator/sensitive_data.ex">>,
26 + <<"lib/resource_generator/spec.ex">>,<<"lib/migration_compile_cache.ex">>,
27 + <<"lib/check_constraint.ex">>,<<"lib/data_layer">>,
28 + <<"lib/data_layer/info.ex">>,<<"lib/version_agent.ex">>,
29 + <<"lib/custom_extension.ex">>,<<"lib/custom_index.ex">>,
30 + <<"lib/reference.ex">>,<<"lib/multitenancy.ex">>,
31 + <<"lib/migration_generator">>,<<"lib/migration_generator/phase.ex">>,
32 + <<"lib/migration_generator/migration_generator.ex">>,
33 + <<"lib/migration_generator/ash_functions.ex">>,
34 + <<"lib/migration_generator/operation.ex">>,<<"lib/migration.ex">>,
35 + <<"lib/sql_implementation.ex">>,<<"lib/type.ex">>,<<"lib/data_layer.ex">>,
36 + <<"lib/igniter.ex">>,<<"lib/statement.ex">>,<<"lib/types">>,
37 + <<"lib/types/tsvector.ex">>,<<"lib/types/ltree.ex">>,
38 + <<"lib/types/timestamptz.ex">>,<<"lib/types/tsquery.ex">>,
39 + <<"lib/types/string_wrapper.ex">>,<<"lib/types/timestamptz_usec.ex">>,
40 + <<"lib/types/ci_string_wrapper.ex">>,<<"lib/ash_postgres.ex">>,
41 + <<"lib/extensions">>,<<"lib/extensions/vector.ex">>,<<"lib/repo">>,
42 + <<"lib/repo/before_compile.ex">>,<<"lib/verifiers">>,
43 + <<"lib/verifiers/prevent_attribute_multitenancy_and_non_full_match_type.ex">>,
44 + <<"lib/verifiers/prevent_multidimensional_array_aggregates.ex">>,
45 + <<"lib/verifiers/ensure_table_or_polymorphic.ex">>,
46 + <<"lib/verifiers/validate_references.ex">>,
47 + <<"lib/verifiers/validate_identity_index_names.ex">>,
48 + <<"lib/ecto_migration_default.ex">>,<<".formatter.exs">>,<<"mix.exs">>,
49 + <<"README.md">>,<<"LICENSE">>,<<"CHANGELOG.md">>,<<"documentation">>,
50 + <<"documentation/1.0-CHANGELOG.md">>,<<"documentation/topics">>,
51 + <<"documentation/topics/about-ash-postgres">>,
52 + <<"documentation/topics/about-ash-postgres/what-is-ash-postgres.md">>,
53 + <<"documentation/topics/advanced">>,
56 54 <<"documentation/topics/advanced/schema-based-multitenancy.md">>,
55 + <<"documentation/topics/advanced/manual-relationships.md">>,
57 56 <<"documentation/topics/advanced/expressions.md">>,
58 57 <<"documentation/topics/development">>,
59 - <<"documentation/topics/development/testing.md">>,
60 58 <<"documentation/topics/development/upgrading-to-2.0.md">>,
59 + <<"documentation/topics/development/testing.md">>,
61 60 <<"documentation/topics/development/migrations-and-tasks.md">>,
62 61 <<"documentation/topics/resources">>,
63 62 <<"documentation/topics/resources/references.md">>,
64 63 <<"documentation/topics/resources/polymorphic-resources.md">>,
65 - <<"documentation/topics/about-ash-postgres">>,
66 - <<"documentation/topics/about-ash-postgres/what-is-ash-postgres.md">>]}.
67 - {<<"app">>,<<"ash_postgres">>}.
68 - {<<"licenses">>,[<<"MIT">>]}.
64 + <<"documentation/tutorials">>,
65 + <<"documentation/tutorials/set-up-with-existing-database.md">>,
66 + <<"documentation/tutorials/get-started-with-ash-postgres.md">>,
67 + <<"documentation/dsls">>,
68 + <<"documentation/dsls/DSL-AshPostgres.DataLayer.md">>]}.
69 69 {<<"requirements">>,
70 70 [[{<<"name">>,<<"ash">>},
71 71 {<<"app">>,<<"ash">>},
  @@ -80,7 +80,7 @@
80 80 [{<<"name">>,<<"igniter">>},
81 81 {<<"app">>,<<"igniter">>},
82 82 {<<"optional">>,true},
83 - {<<"requirement">>,<<"~> 0.4 and >= 0.4.4">>},
83 + {<<"requirement">>,<<"~> 0.5 and >= 0.5.16">>},
84 84 {<<"repository">>,<<"hexpm">>}],
85 85 [{<<"name">>,<<"ecto_sql">>},
86 86 {<<"app">>,<<"ecto_sql">>},
  @@ -101,15 +101,5 @@
101 101 {<<"app">>,<<"postgrex">>},
102 102 {<<"optional">>,false},
103 103 {<<"requirement">>,<<">= 0.0.0">>},
104 - {<<"repository">>,<<"hexpm">>}],
105 - [{<<"name">>,<<"inflex">>},
106 - {<<"app">>,<<"inflex">>},
107 - {<<"optional">>,false},
108 - {<<"requirement">>,<<"~> 2.1">>},
109 - {<<"repository">>,<<"hexpm">>}],
110 - [{<<"name">>,<<"owl">>},
111 - {<<"app">>,<<"owl">>},
112 - {<<"optional">>,false},
113 - {<<"requirement">>,<<"~> 0.11">>},
114 104 {<<"repository">>,<<"hexpm">>}]]}.
115 105 {<<"build_tools">>,[<<"mix">>]}.
unknownlib/migration_generator/migration_generator.ex
File is too large to be displayed (100 KB limit).
  @@ -247,6 +247,31 @@ defmodule AshPostgres.MigrationGenerator.Operation do
247 247 |> join()
248 248 end
249 249
250 + def up(%{
251 + multitenancy: %{strategy: nil},
252 + attribute:
253 + %{
254 + references: %{
255 + multitenancy: %{strategy: :context}
256 + }
257 + } = attribute
258 + }) do
259 + size =
260 + if attribute.size do
261 + "size: #{attribute.size}"
262 + end
263 +
264 + [
265 + "add #{inspect(attribute.source)}",
266 + inspect(attribute.type),
267 + maybe_add_default(attribute.default),
268 + maybe_add_primary_key(attribute.primary_key?),
269 + size,
270 + maybe_add_null(attribute.allow_nil?)
271 + ]
272 + |> join()
273 + end
274 +
250 275 def up(%{
251 276 multitenancy: %{strategy: :context},
252 277 attribute:
Loading more files…