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
Current section
409 Versions
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…