Packages

ash_postgres

2.5.6
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
+105 additions
-48 deletions
  @@ -5,6 +5,25 @@ See [Conventional Commits](https://www.conventionalcommits.org) for commit guide
5 5
6 6 <!-- changelog -->
7 7
8 + ## [v2.5.6](https://github.com/ash-project/ash_postgres/compare/v2.5.5...v2.5.6) (2025-02-25)
9 +
10 +
11 +
12 +
13 + ### Bug Fixes:
14 +
15 + * start lateral join source query bindings at 500
16 +
17 + * Ensure primary key migrations use prefix for multitenancy (#488)
18 +
19 + * don't rewrite identities when only global? is changed
20 +
21 + * don't modify an attribute when it only needs to be renamed
22 +
23 + ### Improvements:
24 +
25 + * support SKIP LOCKED in locks
26 +
8 27 ## [v2.5.5](https://github.com/ash-project/ash_postgres/compare/v2.5.4...v2.5.5) (2025-02-17)
  @@ -2,7 +2,7 @@
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.5">>}.
5 + {<<"version">>,<<"2.5.6">>}.
6 6 {<<"description">>,<<"The PostgreSQL data layer for Ash Framework">>}.
7 7 {<<"elixir">>,<<"~> 1.13">>}.
8 8 {<<"files">>,
  @@ -71,12 +71,12 @@
71 71 [[{<<"name">>,<<"ash">>},
72 72 {<<"app">>,<<"ash">>},
73 73 {<<"optional">>,false},
74 - {<<"requirement">>,<<"~> 3.4 and >= 3.4.64">>},
74 + {<<"requirement">>,<<"~> 3.4 and >= 3.4.65">>},
75 75 {<<"repository">>,<<"hexpm">>}],
76 76 [{<<"name">>,<<"ash_sql">>},
77 77 {<<"app">>,<<"ash_sql">>},
78 78 {<<"optional">>,false},
79 - {<<"requirement">>,<<"~> 0.2 and >= 0.2.43">>},
79 + {<<"requirement">>,<<"~> 0.2 and >= 0.2.57">>},
80 80 {<<"repository">>,<<"hexpm">>}],
81 81 [{<<"name">>,<<"igniter">>},
82 82 {<<"app">>,<<"igniter">>},
unknownlib/data_layer.ex
File is too large to be displayed (100 KB limit).
unknownlib/migration_generator/migration_generator.ex
File is too large to be displayed (100 KB limit).
  @@ -1055,17 +1055,24 @@ defmodule AshPostgres.MigrationGenerator.Operation do
1055 1055 @moduledoc false
1056 1056 defstruct [:schema, :table, :keys, no_phase: true]
1057 1057
1058 - def up(%{schema: schema, table: table, keys: keys}) do
1058 + def up(%{schema: schema, table: table, keys: keys, multitenancy: multitenancy}) do
1059 1059 keys = Enum.join(keys, ", ")
1060 1060
1061 - if schema do
1062 - """
1063 - execute("ALTER TABLE \\\"#{schema}.#{table}\\\" ADD PRIMARY KEY (#{keys})")
1064 - """
1065 - else
1066 - """
1067 - execute("ALTER TABLE \\\"#{table}\\\" ADD PRIMARY KEY (#{keys})")
1068 - """
1061 + cond do
1062 + multitenancy.strategy == :context ->
1063 + """
1064 + execute("ALTER TABLE \\\"\#{prefix()}\\\".\\\"#{table}\\\" ADD PRIMARY KEY (#{keys})")
1065 + """
1066 +
1067 + schema ->
1068 + """
1069 + execute("ALTER TABLE \\\"#{schema}.#{table}\\\" ADD PRIMARY KEY (#{keys})")
1070 + """
1071 +
1072 + true ->
1073 + """
1074 + execute("ALTER TABLE \\\"#{table}\\\" ADD PRIMARY KEY (#{keys})")
1075 + """
1069 1076 end
1070 1077 end
1071 1078
  @@ -1082,33 +1089,54 @@ defmodule AshPostgres.MigrationGenerator.Operation do
1082 1089 ""
1083 1090 end
1084 1091
1085 - def down(%{schema: schema, table: table, remove_old?: remove_old?, keys: keys}) do
1092 + def down(%{
1093 + schema: schema,
1094 + table: table,
1095 + remove_old?: remove_old?,
1096 + keys: keys,
1097 + multitenancy: multitenancy
1098 + }) do
1086 1099 keys = Enum.join(keys, ", ")
1087 1100
1088 - if schema do
1089 - remove_old =
1090 - if remove_old? do
1091 - """
1092 - execute("ALTER TABLE \\\"#{schema}.#{table}\\\" DROP constraint #{table}_pkey")
1093 - """
1094 - end
1101 + cond do
1102 + multitenancy.strategy == :context ->
1103 + remove_old =
1104 + if remove_old? do
1105 + """
1106 + execute("ALTER TABLE \\\"\#{prefix()}\\\".\\\"#{table}\\\" DROP constraint #{table}_pkey")
1107 + """
1108 + end
1095 1109
1096 - """
1097 - #{remove_old}
1098 - execute("ALTER TABLE \\\"#{schema}.#{table}\\\" ADD PRIMARY KEY (#{keys})")
1099 - """
1100 - else
1101 - remove_old =
1102 - if remove_old? do
1103 - """
1104 - execute("ALTER TABLE \\\"#{table}\\\" DROP constraint #{table}_pkey")
1105 - """
1106 - end
1110 + """
1111 + #{remove_old}
1112 + execute("ALTER TABLE \\\"\#{prefix()}\\\".\\\"#{table}\\\" ADD PRIMARY KEY (#{keys})")
1113 + """
1107 1114
1108 - """
1109 - #{remove_old}
1110 - execute("ALTER TABLE \\\"#{table}\\\" ADD PRIMARY KEY (#{keys})")
1111 - """
1115 + not is_nil(schema) ->
1116 + remove_old =
1117 + if remove_old? do
1118 + """
1119 + execute("ALTER TABLE \\\"#{schema}.#{table}\\\" DROP constraint #{table}_pkey")
1120 + """
1121 + end
1122 +
1123 + """
1124 + #{remove_old}
1125 + execute("ALTER TABLE \\\"#{schema}.#{table}\\\" ADD PRIMARY KEY (#{keys})")
1126 + """
1127 +
1128 + true ->
1129 + remove_old =
1130 + if remove_old? do
1131 + """
1132 + execute("ALTER TABLE \\\"#{table}\\\" DROP constraint #{table}_pkey")
1133 + """
1134 + end
1135 +
1136 + """
1137 + #{remove_old}
1138 + execute("ALTER TABLE \\\"#{table}\\\" ADD PRIMARY KEY (#{keys})")
1139 + """
1112 1140 end
1113 1141 end
1114 1142 end
  @@ -1117,11 +1145,16 @@ defmodule AshPostgres.MigrationGenerator.Operation do
1117 1145 @moduledoc false
1118 1146 defstruct [:schema, :table, no_phase: true]
1119 1147
1120 - def up(%{schema: schema, table: table}) do
1121 - if schema do
1122 - "drop constraint(#{inspect(table)}, \"#{table}_pkey\", prefix: \"#{schema}\")"
1123 - else
1124 - "drop constraint(#{inspect(table)}, \"#{table}_pkey\")"
1148 + def up(%{schema: schema, table: table, multitenancy: multitenancy}) do
1149 + cond do
1150 + multitenancy.strategy == :context ->
1151 + "drop constraint(#{inspect(table)}, \"#{table}_pkey\", prefix: prefix())"
1152 +
1153 + schema ->
1154 + "drop constraint(#{inspect(table)}, \"#{table}_pkey\", prefix: \"#{schema}\")"
1155 +
1156 + true ->
1157 + "drop constraint(#{inspect(table)}, \"#{table}_pkey\")"
1125 1158 end
1126 1159 end
1127 1160
  @@ -1138,7 +1171,7 @@ defmodule AshPostgres.MigrationGenerator.Operation do
1138 1171 ""
1139 1172 end
1140 1173
1141 - def down(%{schema: schema, table: table, commented?: commented?}) do
1174 + def down(%{schema: schema, table: table, commented?: commented?, multitenancy: multitenancy}) do
1142 1175 comment =
1143 1176 if commented? do
1144 1177 """
  @@ -1149,10 +1182,15 @@ defmodule AshPostgres.MigrationGenerator.Operation do
1149 1182 ""
1150 1183 end
1151 1184
1152 - if schema do
1153 - "#{comment}drop constraint(#{inspect(table)}, \"#{table}_pkey\", prefix: \"#{schema}\")"
1154 - else
1155 - "#{comment}drop constraint(#{inspect(table)}, \"#{table}_pkey\")"
1185 + cond do
1186 + multitenancy.strategy == :context ->
1187 + "#{comment}drop constraint(#{inspect(table)}, \"#{table}_pkey\", prefix: prefix())"
1188 +
1189 + schema ->
1190 + "#{comment}drop constraint(#{inspect(table)}, \"#{table}_pkey\", prefix: \"#{schema}\")"
1191 +
1192 + true ->
1193 + "#{comment}drop constraint(#{inspect(table)}, \"#{table}_pkey\")"
1156 1194 end
1157 1195 end
1158 1196 end
Loading more files…