Packages

ash_postgres

2.3.0
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

Security advisory: This version has known vulnerabilities. View advisories

Current section

409 Versions

Jump to

Compare versions

11 files changed
+1961 additions
-14 deletions
  @@ -5,6 +5,17 @@ See [Conventional Commits](Https://conventionalcommits.org) for commit guideline
5 5
6 6 <!-- changelog -->
7 7
8 + ## [v2.3.0](https://github.com/ash-project/ash_postgres/compare/v2.2.5...v2.3.0) (2024-09-05)
9 +
10 +
11 +
12 +
13 + ### Features:
14 +
15 + * `mix ash_postgres.gen.resources`
16 +
17 + * `mix ash_postgres.gen.resources`
18 +
8 19 ## [v2.2.5](https://github.com/ash-project/ash_postgres/compare/v2.2.4...v2.2.5) (2024-09-04)
9 20
10 21 ### Improvements:
  @@ -0,0 +1,33 @@
1 + # Setting AshPostgres up with an existing database
2 +
3 + If you already have a postgres database and you'd like to get
4 + started quickly, you can scaffold resources directly from your
5 + database.
6 +
7 + First, create an application with AshPostgres if you haven't already:
8 +
9 + ```bash
10 + mix igniter.new my_app
11 + --install ash,ash_postgres
12 + --with phx.new # add this if you will be using phoenix too
13 + ```
14 +
15 + Then, go into your `config/dev.exs` and configure your repo to use
16 + your existing database.
17 +
18 + Finally, run:
19 +
20 + ```bash
21 + mix ash_postgres.gen.resources MyApp.MyDomain --tables table1,table2,table3
22 + ```
23 +
24 + ## More fine grained control
25 +
26 + You may want to do multiple passes to separate your application into multiple domains. For example:
27 +
28 + ```bash
29 + mix ash_postgres.gen.resources MyApp.Accounts --tables users,roles,tokens
30 + mix ash_postgres.gen.resources MyApp.Blog --tables posts,comments
31 + ```
32 +
33 + See the docs for `mix ash_postgres.gen.resources` for more information.
  @@ -1,7 +1,7 @@
1 1 {<<"links">>,
2 2 [{<<"GitHub">>,<<"https://github.com/ash-project/ash_postgres">>}]}.
3 3 {<<"name">>,<<"ash_postgres">>}.
4 - {<<"version">>,<<"2.2.5">>}.
4 + {<<"version">>,<<"2.3.0">>}.
5 5 {<<"description">>,<<"The PostgreSQL data layer for Ash Framework">>}.
6 6 {<<"elixir">>,<<"~> 1.13">>}.
7 7 {<<"app">>,<<"ash_postgres">>}.
  @@ -26,23 +26,29 @@
26 26 <<"lib/mix/tasks">>,<<"lib/mix/tasks/ash_postgres.drop.ex">>,
27 27 <<"lib/mix/tasks/ash_postgres.generate_migrations.ex">>,
28 28 <<"lib/mix/tasks/ash_postgres.rollback.ex">>,
29 + <<"lib/mix/tasks/ash_postgres.gen.resources.ex">>,
29 30 <<"lib/mix/tasks/ash_postgres.squash_snapshots.ex">>,
30 31 <<"lib/mix/tasks/ash_postgres.migrate.ex">>,
31 32 <<"lib/mix/tasks/ash_postgres.create.ex">>,
32 33 <<"lib/mix/tasks/ash_postgres.install.ex">>,<<"lib/mix/helpers.ex">>,
33 34 <<"lib/version_agent.ex">>,<<"lib/extensions">>,
34 35 <<"lib/extensions/vector.ex">>,<<"lib/custom_extension.ex">>,
35 - <<"lib/migration.ex">>,<<"lib/data_layer">>,<<"lib/data_layer/info.ex">>,
36 - <<"lib/custom_index.ex">>,<<"lib/functions">>,<<"lib/functions/like.ex">>,
37 - <<"lib/functions/vector_cosine_distance.ex">>,<<"lib/functions/ilike.ex">>,
38 - <<"lib/functions/binding.ex">>,<<"lib/functions/trigram_similarity.ex">>,
39 - <<"lib/multitenancy.ex">>,<<"lib/repo.ex">>,<<"lib/repo">>,
40 - <<"lib/repo/before_compile.ex">>,<<"lib/sql_implementation.ex">>,
41 - <<"lib/reference.ex">>,<<"lib/data_layer.ex">>,
42 - <<"lib/ecto_migration_default.ex">>,<<".formatter.exs">>,<<"mix.exs">>,
43 - <<"README.md">>,<<"LICENSE">>,<<"CHANGELOG.md">>,<<"documentation">>,
44 - <<"documentation/1.0-CHANGELOG.md">>,<<"documentation/tutorials">>,
36 + <<"lib/migration.ex">>,<<"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">>,
41 + <<"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">>,
45 50 <<"documentation/tutorials/get-started-with-ash-postgres.md">>,
51 + <<"documentation/tutorials/set-up-with-existing-database.md">>,
46 52 <<"documentation/dsls">>,
47 53 <<"documentation/dsls/DSL:-AshPostgres.DataLayer.md">>,
48 54 <<"documentation/topics">>,<<"documentation/topics/advanced">>,
  @@ -93,5 +99,15 @@
93 99 {<<"app">>,<<"postgrex">>},
94 100 {<<"optional">>,false},
95 101 {<<"requirement">>,<<">= 0.0.0">>},
102 + {<<"repository">>,<<"hexpm">>}],
103 + [{<<"name">>,<<"inflex">>},
104 + {<<"app">>,<<"inflex">>},
105 + {<<"optional">>,false},
106 + {<<"requirement">>,<<"~> 2.1">>},
107 + {<<"repository">>,<<"hexpm">>}],
108 + [{<<"name">>,<<"owl">>},
109 + {<<"app">>,<<"owl">>},
110 + {<<"optional">>,false},
111 + {<<"requirement">>,<<"~> 0.11">>},
96 112 {<<"repository">>,<<"hexpm">>}]]}.
97 113 {<<"build_tools">>,[<<"mix">>]}.
  @@ -18,6 +18,30 @@ defmodule AshPostgres.Igniter do
18 18 """
19 19 end
20 20
21 + def table(igniter, resource) do
22 + igniter
23 + |> Spark.Igniter.get_option(resource, [:postgres, :table])
24 + |> case do
25 + {igniter, {:ok, value}} when is_binary(value) or is_nil(value) ->
26 + {:ok, igniter, value}
27 +
28 + {igniter, _} ->
29 + {:error, igniter}
30 + end
31 + end
32 +
33 + def repo(igniter, resource) do
34 + igniter
35 + |> Spark.Igniter.get_option(resource, [:postgres, :repo])
36 + |> case do
37 + {igniter, {:ok, value}} when is_atom(value) ->
38 + {:ok, igniter, value}
39 +
40 + {igniter, _} ->
41 + {:error, igniter}
42 + end
43 + end
44 +
21 45 def add_postgres_extension(igniter, repo_name, extension) do
22 46 Igniter.Code.Module.find_and_update_module!(igniter, repo_name, fn zipper ->
23 47 case Igniter.Code.Function.move_to_def(zipper, :installed_extensions, 0) do
  @@ -18,6 +18,7 @@ defmodule AshPostgres.MigrationGenerator do
18 18 format: true,
19 19 dry_run: false,
20 20 check: false,
21 + snapshots_only: false,
21 22 dont_drop_columns: false
22 23
23 24 def generate(domains, opts \\ []) do
Loading more files…