@prisma-next/target-postgres 0.14.0-dev.2 → 0.14.0-dev.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canonicalize-Bn3BM1Cn.mjs +46 -0
- package/dist/canonicalize-Bn3BM1Cn.mjs.map +1 -0
- package/dist/canonicalize-CAbXtVtB.d.mts +37 -0
- package/dist/canonicalize-CAbXtVtB.d.mts.map +1 -0
- package/dist/codecs.mjs.map +1 -1
- package/dist/contract-free.d.mts +8 -3
- package/dist/contract-free.d.mts.map +1 -1
- package/dist/contract-free.mjs +3 -3
- package/dist/control.d.mts +1 -1
- package/dist/control.mjs +6 -6
- package/dist/data-transform-BOWpliq8.mjs.map +1 -1
- package/dist/{data-transform-DDgWdB5o.d.mts → data-transform-qKy1U5V9.d.mts} +2 -2
- package/dist/{data-transform-DDgWdB5o.d.mts.map → data-transform-qKy1U5V9.d.mts.map} +1 -1
- package/dist/data-transform.d.mts +1 -1
- package/dist/{ddl-QDyOSeLc.mjs → ddl-BJPdPsT3.mjs} +62 -5
- package/dist/ddl-BJPdPsT3.mjs.map +1 -0
- package/dist/ddl.d.mts +3 -2
- package/dist/ddl.mjs +2 -2
- package/dist/{default-normalizer-DyyCHQWs.mjs → default-normalizer-CzV8-QSu.mjs} +58 -2
- package/dist/default-normalizer-CzV8-QSu.mjs.map +1 -0
- package/dist/default-normalizer.d.mts +1 -1
- package/dist/default-normalizer.d.mts.map +1 -1
- package/dist/default-normalizer.mjs +1 -1
- package/dist/descriptor-meta-CKpjK2Nv.mjs +17 -0
- package/dist/descriptor-meta-CKpjK2Nv.mjs.map +1 -0
- package/dist/descriptor-meta-runtime-DiVla56r.mjs +228 -0
- package/dist/descriptor-meta-runtime-DiVla56r.mjs.map +1 -0
- package/dist/{issue-planner-DL6g3CmE.mjs → issue-planner-YwXUKGZ1.mjs} +11 -9
- package/dist/issue-planner-YwXUKGZ1.mjs.map +1 -0
- package/dist/issue-planner.d.mts +3 -3
- package/dist/issue-planner.d.mts.map +1 -1
- package/dist/issue-planner.mjs +1 -1
- package/dist/migration.d.mts +3 -3
- package/dist/migration.mjs +2 -2
- package/dist/nodes-CSkPX3rI.d.mts +120 -0
- package/dist/nodes-CSkPX3rI.d.mts.map +1 -0
- package/dist/{nodes-Bbhs2rwj.mjs → nodes-Dh__NS58.mjs} +56 -2
- package/dist/nodes-Dh__NS58.mjs.map +1 -0
- package/dist/{op-factory-call-DmQEc3XV.d.mts → op-factory-call-CQ4P40QC.d.mts} +44 -13
- package/dist/op-factory-call-CQ4P40QC.d.mts.map +1 -0
- package/dist/{op-factory-call-D_p5vxwt.mjs → op-factory-call-DcY4BHNh.mjs} +199 -28
- package/dist/op-factory-call-DcY4BHNh.mjs.map +1 -0
- package/dist/op-factory-call.d.mts +1 -1
- package/dist/op-factory-call.mjs +1 -1
- package/dist/pack.d.mts +74 -1
- package/dist/pack.d.mts.map +1 -1
- package/dist/pack.mjs +1 -1
- package/dist/{planner-Bs_baQax.mjs → planner-_ZHpIQ1-.mjs} +115 -23
- package/dist/planner-_ZHpIQ1-.mjs.map +1 -0
- package/dist/{planner-ddl-builders-B2wOwLqI.mjs → planner-ddl-builders-B8Nn6nHN.mjs} +12 -27
- package/dist/planner-ddl-builders-B8Nn6nHN.mjs.map +1 -0
- package/dist/planner-ddl-builders.d.mts +2 -4
- package/dist/planner-ddl-builders.d.mts.map +1 -1
- package/dist/planner-ddl-builders.mjs +2 -2
- package/dist/{planner-produced-postgres-migration-QqHa2C2l.d.mts → planner-produced-postgres-migration-CNTSCMl7.d.mts} +3 -3
- package/dist/{planner-produced-postgres-migration-QqHa2C2l.d.mts.map → planner-produced-postgres-migration-CNTSCMl7.d.mts.map} +1 -1
- package/dist/{planner-produced-postgres-migration-Cji5vxUf.mjs → planner-produced-postgres-migration-Dv5ZAvHt.mjs} +2 -2
- package/dist/{planner-produced-postgres-migration-Cji5vxUf.mjs.map → planner-produced-postgres-migration-Dv5ZAvHt.mjs.map} +1 -1
- package/dist/planner-produced-postgres-migration.d.mts +1 -1
- package/dist/planner-produced-postgres-migration.mjs +1 -1
- package/dist/{planner-sql-checks-jqUUGyQR.mjs → planner-sql-checks-C7nLjabn.mjs} +2 -2
- package/dist/{planner-sql-checks-jqUUGyQR.mjs.map → planner-sql-checks-C7nLjabn.mjs.map} +1 -1
- package/dist/planner-sql-checks.mjs +1 -1
- package/dist/{planner-target-details-CIY6tLeo.d.mts → planner-target-details-HkP4RrRO.d.mts} +2 -2
- package/dist/planner-target-details-HkP4RrRO.d.mts.map +1 -0
- package/dist/planner-target-details.d.mts +1 -1
- package/dist/planner.d.mts +35 -3
- package/dist/planner.d.mts.map +1 -1
- package/dist/planner.mjs +2 -2
- package/dist/{postgres-contract-serializer-k3TAcPMY.mjs → postgres-contract-serializer-DJDGaS0q.mjs} +30 -21
- package/dist/postgres-contract-serializer-DJDGaS0q.mjs.map +1 -0
- package/dist/{postgres-migration-B5jKrXv3.mjs → postgres-migration-Bj0olfl3.mjs} +2 -2
- package/dist/{postgres-migration-B5jKrXv3.mjs.map → postgres-migration-Bj0olfl3.mjs.map} +1 -1
- package/dist/{postgres-migration-Y4YBJqkS.d.mts → postgres-migration-DJNJHcdP.d.mts} +4 -4
- package/dist/{postgres-migration-Y4YBJqkS.d.mts.map → postgres-migration-DJNJHcdP.d.mts.map} +1 -1
- package/dist/postgres-rls-policy-D_z1osEq.d.mts +60 -0
- package/dist/postgres-rls-policy-D_z1osEq.d.mts.map +1 -0
- package/dist/postgres-role-_CCuyPCQ.d.mts +33 -0
- package/dist/postgres-role-_CCuyPCQ.d.mts.map +1 -0
- package/dist/postgres-schema-Bn4tsMuo.d.mts +157 -0
- package/dist/postgres-schema-Bn4tsMuo.d.mts.map +1 -0
- package/dist/{postgres-schema-COGZ1ark.mjs → postgres-schema-DfuJq-q_.mjs} +141 -5
- package/dist/postgres-schema-DfuJq-q_.mjs.map +1 -0
- package/dist/postgres-schema-ir-BF0X8jit.mjs +66 -0
- package/dist/postgres-schema-ir-BF0X8jit.mjs.map +1 -0
- package/dist/postgres-schema-ir-BQ3RpZMz.d.mts +60 -0
- package/dist/postgres-schema-ir-BQ3RpZMz.d.mts.map +1 -0
- package/dist/postgres-schema-ir-annotations-CWHQ-H9Y.mjs +14 -0
- package/dist/postgres-schema-ir-annotations-CWHQ-H9Y.mjs.map +1 -0
- package/dist/render-ops.d.mts +1 -1
- package/dist/rls-canonicalize.d.mts +2 -0
- package/dist/rls-canonicalize.mjs +2 -0
- package/dist/runtime.d.mts +5 -5
- package/dist/runtime.d.mts.map +1 -1
- package/dist/runtime.mjs +2 -2
- package/dist/schema-ir-annotations.d.mts +8 -0
- package/dist/schema-ir-annotations.d.mts.map +1 -0
- package/dist/schema-ir-annotations.mjs +2 -0
- package/dist/types.d.mts +5 -140
- package/dist/types.mjs +3 -2
- package/package.json +21 -17
- package/src/contract-free/checks.ts +73 -0
- package/src/contract-free/ddl.ts +45 -1
- package/src/core/authoring.ts +115 -1
- package/src/core/codecs.ts +1 -1
- package/src/core/ddl/nodes.ts +94 -2
- package/src/core/default-normalizer.ts +60 -2
- package/src/core/descriptor-meta.ts +4 -0
- package/src/core/entity-kinds.ts +16 -0
- package/src/core/migrations/bound-schema.ts +10 -0
- package/src/core/migrations/control-policy.ts +3 -0
- package/src/core/migrations/issue-planner.ts +8 -0
- package/src/core/migrations/op-factory-call.ts +106 -21
- package/src/core/migrations/operations/columns.ts +24 -12
- package/src/core/migrations/operations/data-transform.ts +6 -0
- package/src/core/migrations/operations/rls.ts +106 -0
- package/src/core/migrations/operations/shared.ts +0 -30
- package/src/core/migrations/planner-ddl-builders.ts +15 -56
- package/src/core/migrations/planner-recipes.ts +31 -13
- package/src/core/migrations/planner-strategies.ts +3 -11
- package/src/core/migrations/planner-target-details.ts +3 -1
- package/src/core/migrations/planner.ts +99 -1
- package/src/core/migrations/verify-postgres-namespaces.ts +12 -15
- package/src/core/migrations/verify-postgres-rls-policies.ts +62 -0
- package/src/core/postgres-contract-serializer.ts +48 -33
- package/src/core/postgres-rls-policy.ts +103 -0
- package/src/core/postgres-role.ts +53 -0
- package/src/core/postgres-schema-ir-annotations.ts +22 -0
- package/src/core/postgres-schema-ir.ts +101 -0
- package/src/core/postgres-schema.ts +33 -13
- package/src/core/postgres-validators.ts +20 -0
- package/src/core/rls/canonicalize.ts +48 -0
- package/src/exports/contract-free.ts +7 -1
- package/src/exports/ddl.ts +4 -0
- package/src/exports/planner-ddl-builders.ts +0 -2
- package/src/exports/planner.ts +1 -0
- package/src/exports/rls-canonicalize.ts +6 -0
- package/src/exports/schema-ir-annotations.ts +1 -0
- package/src/exports/types.ts +12 -0
- package/dist/ddl-QDyOSeLc.mjs.map +0 -1
- package/dist/default-normalizer-DyyCHQWs.mjs.map +0 -1
- package/dist/descriptor-meta-CpGygXpI.mjs +0 -140
- package/dist/descriptor-meta-CpGygXpI.mjs.map +0 -1
- package/dist/issue-planner-DL6g3CmE.mjs.map +0 -1
- package/dist/nodes-Bbhs2rwj.mjs.map +0 -1
- package/dist/nodes-pLeLgdis.d.mts +0 -67
- package/dist/nodes-pLeLgdis.d.mts.map +0 -1
- package/dist/op-factory-call-D_p5vxwt.mjs.map +0 -1
- package/dist/op-factory-call-DmQEc3XV.d.mts.map +0 -1
- package/dist/planner-Bs_baQax.mjs.map +0 -1
- package/dist/planner-ddl-builders-B2wOwLqI.mjs.map +0 -1
- package/dist/planner-target-details-CIY6tLeo.d.mts.map +0 -1
- package/dist/postgres-contract-serializer-k3TAcPMY.mjs.map +0 -1
- package/dist/postgres-schema-COGZ1ark.mjs.map +0 -1
- package/dist/types.d.mts.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { t as PostgresPlanTargetDetails } from "./planner-target-details-
|
|
1
|
+
import { t as PostgresPlanTargetDetails } from "./planner-target-details-HkP4RrRO.mjs";
|
|
2
|
+
import { t as PostgresRlsPolicy } from "./postgres-rls-policy-D_z1osEq.mjs";
|
|
2
3
|
import { DdlColumn, DdlTableConstraint } from "@prisma-next/sql-relational-core/ast";
|
|
3
4
|
import { CodecControlHooks, SqlMigrationPlanOperation } from "@prisma-next/family-sql/control";
|
|
4
|
-
import { ImportRequirement, TsExpression } from "@prisma-next/ts-render";
|
|
5
5
|
import { ReferentialAction, StorageColumn, StorageTypeInstance } from "@prisma-next/sql-contract/types";
|
|
6
|
+
import { ImportRequirement, TsExpression } from "@prisma-next/ts-render";
|
|
6
7
|
import { MigrationOperationClass, OpFactoryCall } from "@prisma-next/framework-components/control";
|
|
7
8
|
import { ExecuteRequestLowerer, Lowerer } from "@prisma-next/family-sql/control-adapter";
|
|
8
9
|
|
|
@@ -153,10 +154,8 @@ declare class DropDefaultCall extends PostgresOpFactoryCallNode {
|
|
|
153
154
|
}
|
|
154
155
|
/**
|
|
155
156
|
* Planner-internal call for adding a NOT NULL column (no contract default) to
|
|
156
|
-
* a table that must be empty at migration time. Carries the
|
|
157
|
-
*
|
|
158
|
-
* DDL) plus the parameters needed to lower the typed pre/postchecks at render
|
|
159
|
-
* time.
|
|
157
|
+
* a table that must be empty at migration time. Carries the typed `DdlColumn`
|
|
158
|
+
* and lowers it to an ADD COLUMN execute step via the adapter at `toOp` time.
|
|
160
159
|
*
|
|
161
160
|
* No authored `PostgresMigration` method: this call is only emitted by the
|
|
162
161
|
* planner, never hand-written by migration authors.
|
|
@@ -167,9 +166,9 @@ declare class AddNotNullColumnDirectCall extends PostgresOpFactoryCallNode {
|
|
|
167
166
|
readonly schemaName: string;
|
|
168
167
|
readonly tableName: string;
|
|
169
168
|
readonly columnName: string;
|
|
170
|
-
readonly
|
|
169
|
+
readonly column: DdlColumn;
|
|
171
170
|
readonly label: string;
|
|
172
|
-
constructor(schemaName: string, tableName: string, columnName: string,
|
|
171
|
+
constructor(schemaName: string, tableName: string, columnName: string, column: DdlColumn);
|
|
173
172
|
toOp(lowerer?: ExecuteRequestLowerer): Promise<Op>;
|
|
174
173
|
renderTypeScript(): string;
|
|
175
174
|
importRequirements(): readonly ImportRequirement[];
|
|
@@ -177,9 +176,9 @@ declare class AddNotNullColumnDirectCall extends PostgresOpFactoryCallNode {
|
|
|
177
176
|
/**
|
|
178
177
|
* Planner-internal call for adding a NOT NULL column (no contract default)
|
|
179
178
|
* using a temporary default value for non-empty tables. Carries all parameters
|
|
180
|
-
* needed for `buildAddNotNullColumnWithTemporaryDefaultOperation`; the
|
|
181
|
-
* pre/postchecks are lowered
|
|
182
|
-
*
|
|
179
|
+
* needed for `buildAddNotNullColumnWithTemporaryDefaultOperation`; both the
|
|
180
|
+
* typed ADD COLUMN execute step and the pre/postchecks are lowered via the
|
|
181
|
+
* adapter at `toOp` time.
|
|
183
182
|
*
|
|
184
183
|
* No authored `PostgresMigration` method: this call is only emitted by the
|
|
185
184
|
* planner, never hand-written by migration authors.
|
|
@@ -374,7 +373,39 @@ declare class DataTransformCall extends PostgresOpFactoryCallNode {
|
|
|
374
373
|
renderTypeScript(): string;
|
|
375
374
|
importRequirements(): readonly ImportRequirement[];
|
|
376
375
|
}
|
|
377
|
-
|
|
376
|
+
declare class CreatePostgresRlsPolicyCall extends PostgresOpFactoryCallNode {
|
|
377
|
+
readonly factoryName: "createRlsPolicy";
|
|
378
|
+
readonly operationClass: "additive";
|
|
379
|
+
readonly schemaName: string;
|
|
380
|
+
readonly tableName: string;
|
|
381
|
+
readonly policy: PostgresRlsPolicy;
|
|
382
|
+
readonly label: string;
|
|
383
|
+
constructor(schemaName: string, tableName: string, policy: PostgresRlsPolicy);
|
|
384
|
+
toOp(lowerer?: ExecuteRequestLowerer): Promise<Op>;
|
|
385
|
+
renderTypeScript(): string;
|
|
386
|
+
}
|
|
387
|
+
declare class DropPostgresRlsPolicyCall extends PostgresOpFactoryCallNode {
|
|
388
|
+
readonly factoryName: "dropRlsPolicy";
|
|
389
|
+
readonly operationClass: "destructive";
|
|
390
|
+
readonly schemaName: string;
|
|
391
|
+
readonly tableName: string;
|
|
392
|
+
readonly policyName: string;
|
|
393
|
+
readonly label: string;
|
|
394
|
+
constructor(schemaName: string, tableName: string, policyName: string);
|
|
395
|
+
toOp(lowerer?: ExecuteRequestLowerer): Promise<Op>;
|
|
396
|
+
renderTypeScript(): string;
|
|
397
|
+
}
|
|
398
|
+
declare class EnableRowLevelSecurityCall extends PostgresOpFactoryCallNode {
|
|
399
|
+
readonly factoryName: "enableRowLevelSecurity";
|
|
400
|
+
readonly operationClass: "additive";
|
|
401
|
+
readonly schemaName: string;
|
|
402
|
+
readonly tableName: string;
|
|
403
|
+
readonly label: string;
|
|
404
|
+
constructor(schemaName: string, tableName: string);
|
|
405
|
+
toOp(lowerer?: ExecuteRequestLowerer): Promise<Op>;
|
|
406
|
+
renderTypeScript(): string;
|
|
407
|
+
}
|
|
408
|
+
type PostgresOpFactoryCall = CreateTableCall | DropTableCall | AddColumnCall | DropColumnCall | AlterColumnTypeCall | SetNotNullCall | DropNotNullCall | SetDefaultCall | DropDefaultCall | AddNotNullColumnDirectCall | AddNotNullColumnWithTempDefaultCall | AddPrimaryKeyCall | AddForeignKeyCall | AddUniqueCall | AddCheckConstraintCall | DropCheckConstraintCall | CreateIndexCall | DropIndexCall | DropConstraintCall | RawSqlCall | CreateExtensionCall | CreateSchemaCall | CreatePostgresRlsPolicyCall | DropPostgresRlsPolicyCall | EnableRowLevelSecurityCall | DataTransformCall;
|
|
378
409
|
//#endregion
|
|
379
410
|
export { SetNotNullCall as C, SetDefaultCall as S, Op$1 as T, DropIndexCall as _, AddUniqueCall as a, PostgresOpFactoryCall as b, CreateExtensionCall as c, CreateTableCall as d, DataTransformCall as f, DropDefaultCall as g, DropConstraintCall as h, AddPrimaryKeyCall as i, CreateIndexCall as l, DropColumnCall as m, AddColumnCall as n, AlterColumnTypeCall as o, DropCheckConstraintCall as p, AddForeignKeyCall as r, AlterColumnTypeOptions as s, AddCheckConstraintCall as t, CreateSchemaCall as u, DropNotNullCall as v, ForeignKeySpec as w, RawSqlCall as x, DropTableCall as y };
|
|
380
|
-
//# sourceMappingURL=op-factory-call-
|
|
411
|
+
//# sourceMappingURL=op-factory-call-CQ4P40QC.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"op-factory-call-CQ4P40QC.d.mts","names":[],"sources":["../src/core/migrations/operations/shared.ts","../src/core/migrations/op-factory-call.ts"],"mappings":"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"}
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import { i as quoteIdentifier, n as escapeLiteral } from "./sql-utils-DcfMz4MQ.mjs";
|
|
2
|
-
import { a as
|
|
3
|
-
import { n as qualifyTableName } from "./planner-sql-checks-
|
|
4
|
-
import {
|
|
2
|
+
import { _ as rlsPolicyExistsAst, a as createTable, c as columnDefaultAst, d as columnTypeAst, f as constraintExistsAst, g as rlsEnabledAst, h as noNullValuesAst, i as createSchema, l as columnExistsAst, m as indexExistsAst, n as alterTable, o as dropDefaultAction, p as extensionExistsAst, r as createPolicy, s as dropPolicy, t as addColumnAction, u as columnNullabilityAst, v as tableExistsAst, y as tableIsEmptyAst } from "./ddl-BJPdPsT3.mjs";
|
|
3
|
+
import { n as qualifyTableName } from "./planner-sql-checks-C7nLjabn.mjs";
|
|
4
|
+
import { n as buildColumnTypeSql } from "./planner-ddl-builders-B8Nn6nHN.mjs";
|
|
5
5
|
import { FunctionColumnDefault, LiteralColumnDefault } from "@prisma-next/sql-relational-core/ast";
|
|
6
6
|
import { blindCast } from "@prisma-next/utils/casts";
|
|
7
7
|
import { ifDefined } from "@prisma-next/utils/defined";
|
|
8
8
|
import { UNBOUND_NAMESPACE_ID } from "@prisma-next/framework-components/ir";
|
|
9
|
+
import { col } from "@prisma-next/sql-relational-core/contract-free";
|
|
9
10
|
import { errorUnfilledPlaceholder } from "@prisma-next/errors/migration";
|
|
10
11
|
import { TsExpression, jsonToTsSource } from "@prisma-next/ts-render";
|
|
11
12
|
import { REFERENTIAL_ACTION_SQL } from "@prisma-next/sql-contract/referential-action-sql";
|
|
13
|
+
//#region src/core/migrations/bound-schema.ts
|
|
14
|
+
/**
|
|
15
|
+
* Maps a planner schema name to the contract-free DDL builder's optional
|
|
16
|
+
* `schema` field: the unbound sentinel becomes `undefined` (the builder omits
|
|
17
|
+
* the schema qualifier), every other name passes through.
|
|
18
|
+
*/
|
|
19
|
+
function boundSchema(schemaName) {
|
|
20
|
+
return schemaName === UNBOUND_NAMESPACE_ID ? void 0 : schemaName;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
12
23
|
//#region src/core/migrations/operations/shared.ts
|
|
13
24
|
function step(description, sql, params) {
|
|
14
25
|
return {
|
|
@@ -171,12 +182,16 @@ async function setDefault(schemaName, tableName, columnName, defaultSql, lowerer
|
|
|
171
182
|
};
|
|
172
183
|
}
|
|
173
184
|
async function dropDefault(schemaName, tableName, columnName, lowerer) {
|
|
174
|
-
const qualified = qualifyTableName(schemaName, tableName);
|
|
175
185
|
const { present } = await columnExistsSteps(lowerer, {
|
|
176
186
|
schema: schemaName,
|
|
177
187
|
table: tableName,
|
|
178
188
|
column: columnName
|
|
179
189
|
});
|
|
190
|
+
const dropDefaultExec = await lowerer.lowerToExecuteRequest(alterTable({
|
|
191
|
+
...ifDefined("schema", boundSchema(schemaName)),
|
|
192
|
+
table: tableName,
|
|
193
|
+
actions: [dropDefaultAction(columnName)]
|
|
194
|
+
}));
|
|
180
195
|
const noDefault = await lowerer.lowerToExecuteRequest(columnDefaultAst({
|
|
181
196
|
schema: schemaName,
|
|
182
197
|
table: tableName,
|
|
@@ -188,17 +203,23 @@ async function dropDefault(schemaName, tableName, columnName, lowerer) {
|
|
|
188
203
|
operationClass: "destructive",
|
|
189
204
|
target: targetDetails("column", columnName, schemaName, tableName),
|
|
190
205
|
precheck: [step(`ensure column "${columnName}" exists`, present.sql, present.params)],
|
|
191
|
-
execute: [step(`drop default on "${columnName}"`,
|
|
206
|
+
execute: [step(`drop default on "${columnName}"`, dropDefaultExec.sql)],
|
|
192
207
|
postcheck: [step(`verify column "${columnName}" has no default`, noDefault.sql, noDefault.params)]
|
|
193
208
|
};
|
|
194
209
|
}
|
|
195
210
|
/**
|
|
196
211
|
* Builds the op for adding a NOT NULL column (no contract default) to a
|
|
197
212
|
* non-empty table. Prechecks assert the column is absent and the table is
|
|
198
|
-
* empty; the execute step
|
|
199
|
-
*
|
|
213
|
+
* empty; the execute step lowers the typed `AddColumn` DDL node through the
|
|
214
|
+
* adapter; postchecks assert the column exists and is NOT NULL.
|
|
200
215
|
*/
|
|
201
|
-
async function addNotNullColumnDirect(schemaName, tableName,
|
|
216
|
+
async function addNotNullColumnDirect(schemaName, tableName, column, lowerer) {
|
|
217
|
+
const columnName = column.name;
|
|
218
|
+
const addColumn = await lowerer.lowerToExecuteRequest(alterTable({
|
|
219
|
+
...ifDefined("schema", boundSchema(schemaName)),
|
|
220
|
+
table: tableName,
|
|
221
|
+
actions: [addColumnAction(column)]
|
|
222
|
+
}));
|
|
202
223
|
const absent = await lowerer.lowerToExecuteRequest(columnExistsAst({
|
|
203
224
|
schema: schemaName,
|
|
204
225
|
table: tableName,
|
|
@@ -223,7 +244,7 @@ async function addNotNullColumnDirect(schemaName, tableName, columnName, execute
|
|
|
223
244
|
operationClass: "additive",
|
|
224
245
|
target: targetDetails("column", columnName, schemaName, tableName),
|
|
225
246
|
precheck: [step(`ensure column "${columnName}" is missing`, absent.sql, absent.params), step(`ensure table "${tableName}" is empty before adding NOT NULL column without default`, tableEmpty.sql, tableEmpty.params)],
|
|
226
|
-
execute: [step(`add column "${columnName}"`,
|
|
247
|
+
execute: [step(`add column "${columnName}"`, addColumn.sql)],
|
|
227
248
|
postcheck: [step(`verify column "${columnName}" exists`, present.sql, present.params), step(`verify column "${columnName}" is NOT NULL`, notNullable.sql, notNullable.params)]
|
|
228
249
|
};
|
|
229
250
|
}
|
|
@@ -463,6 +484,81 @@ async function dropIndex(schemaName, tableName, indexName, lowerer) {
|
|
|
463
484
|
};
|
|
464
485
|
}
|
|
465
486
|
//#endregion
|
|
487
|
+
//#region src/core/migrations/operations/rls.ts
|
|
488
|
+
const PLAIN_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_$]*$/;
|
|
489
|
+
function validateRoleName(role) {
|
|
490
|
+
if (!PLAIN_IDENTIFIER.test(role)) throw new Error(`Invalid role name ${JSON.stringify(role)}: role names must be plain SQL identifiers matching ^[A-Za-z_][A-Za-z0-9_$]*$`);
|
|
491
|
+
return role;
|
|
492
|
+
}
|
|
493
|
+
async function createRlsPolicy(schemaName, tableName, policy, lowerer) {
|
|
494
|
+
const validatedRoles = policy.roles.map(validateRoleName);
|
|
495
|
+
const ddlNode = createPolicy({
|
|
496
|
+
schema: schemaName,
|
|
497
|
+
table: tableName,
|
|
498
|
+
name: policy.name,
|
|
499
|
+
permissive: policy.permissive,
|
|
500
|
+
operation: policy.operation,
|
|
501
|
+
roles: validatedRoles,
|
|
502
|
+
...ifDefined("using", policy.using),
|
|
503
|
+
...ifDefined("withCheck", policy.withCheck)
|
|
504
|
+
});
|
|
505
|
+
const checks = rlsPolicyExistsAst({
|
|
506
|
+
schema: schemaName,
|
|
507
|
+
table: tableName,
|
|
508
|
+
policyName: policy.name
|
|
509
|
+
});
|
|
510
|
+
const absent = await lowerer.lowerToExecuteRequest(checks.policyAbsent());
|
|
511
|
+
const execute = await lowerer.lowerToExecuteRequest(ddlNode);
|
|
512
|
+
const present = await lowerer.lowerToExecuteRequest(checks.policyPresent());
|
|
513
|
+
return {
|
|
514
|
+
id: `rlsPolicy.${schemaName}.${tableName}.${policy.name}`,
|
|
515
|
+
label: `Create RLS policy "${policy.name}" on "${tableName}"`,
|
|
516
|
+
operationClass: "additive",
|
|
517
|
+
target: targetDetails("rlsPolicy", policy.name, schemaName, tableName),
|
|
518
|
+
precheck: [step(`ensure RLS policy "${policy.name}" does not exist`, absent.sql, absent.params)],
|
|
519
|
+
execute: [step(`create RLS policy "${policy.name}"`, execute.sql, execute.params)],
|
|
520
|
+
postcheck: [step(`verify RLS policy "${policy.name}" exists`, present.sql, present.params)]
|
|
521
|
+
};
|
|
522
|
+
}
|
|
523
|
+
async function dropRlsPolicy(schemaName, tableName, policyName, lowerer) {
|
|
524
|
+
const ddlNode = dropPolicy({
|
|
525
|
+
schema: schemaName,
|
|
526
|
+
table: tableName,
|
|
527
|
+
name: policyName
|
|
528
|
+
});
|
|
529
|
+
const checks = rlsPolicyExistsAst({
|
|
530
|
+
schema: schemaName,
|
|
531
|
+
table: tableName,
|
|
532
|
+
policyName
|
|
533
|
+
});
|
|
534
|
+
const present = await lowerer.lowerToExecuteRequest(checks.policyPresent());
|
|
535
|
+
const execute = await lowerer.lowerToExecuteRequest(ddlNode);
|
|
536
|
+
const absent = await lowerer.lowerToExecuteRequest(checks.policyAbsent());
|
|
537
|
+
return {
|
|
538
|
+
id: `rlsPolicy.${schemaName}.${tableName}.${policyName}.drop`,
|
|
539
|
+
label: `Drop RLS policy "${policyName}" on "${tableName}"`,
|
|
540
|
+
operationClass: "destructive",
|
|
541
|
+
target: targetDetails("rlsPolicy", policyName, schemaName, tableName),
|
|
542
|
+
precheck: [step(`ensure RLS policy "${policyName}" exists`, present.sql, present.params)],
|
|
543
|
+
execute: [step(`drop RLS policy "${policyName}"`, execute.sql, execute.params)],
|
|
544
|
+
postcheck: [step(`verify RLS policy "${policyName}" is absent`, absent.sql, absent.params)]
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
async function enableRowLevelSecurity(schemaName, tableName, lowerer) {
|
|
548
|
+
const checks = rlsEnabledAst(schemaName, tableName);
|
|
549
|
+
const disabled = await lowerer.lowerToExecuteRequest(checks.rlsDisabled());
|
|
550
|
+
const enabled = await lowerer.lowerToExecuteRequest(checks.rlsEnabled());
|
|
551
|
+
return {
|
|
552
|
+
id: `rowLevelSecurity.${schemaName}.${tableName}`,
|
|
553
|
+
label: `Enable row-level security on "${tableName}"`,
|
|
554
|
+
operationClass: "additive",
|
|
555
|
+
target: targetDetails("rowLevelSecurity", tableName, schemaName),
|
|
556
|
+
precheck: [step(`check RLS is not already enabled on "${tableName}"`, disabled.sql, disabled.params)],
|
|
557
|
+
execute: [step(`enable row-level security on "${tableName}"`, `ALTER TABLE ${qualifyTableName(schemaName, tableName)} ENABLE ROW LEVEL SECURITY`)],
|
|
558
|
+
postcheck: [step(`verify row-level security is enabled on "${tableName}"`, enabled.sql, enabled.params)]
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
//#endregion
|
|
466
562
|
//#region src/core/migrations/operations/tables.ts
|
|
467
563
|
async function dropTable(schemaName, tableName, lowerer) {
|
|
468
564
|
const qualified = qualifyTableName(schemaName, tableName);
|
|
@@ -504,7 +600,20 @@ function buildAddColumnOperationIdentity(schema, tableName, columnName) {
|
|
|
504
600
|
}
|
|
505
601
|
async function buildAddNotNullColumnWithTemporaryDefaultOperation(options) {
|
|
506
602
|
const { schema, tableName, columnName, column, codecHooks, storageTypes, temporaryDefault, lowerer } = options;
|
|
507
|
-
const
|
|
603
|
+
const ddlColumn = col(columnName, buildColumnTypeSql(column, codecHooks, storageTypes), {
|
|
604
|
+
notNull: true,
|
|
605
|
+
default: new FunctionColumnDefault(temporaryDefault)
|
|
606
|
+
});
|
|
607
|
+
const addColumn = await lowerer.lowerToExecuteRequest(alterTable({
|
|
608
|
+
...ifDefined("schema", boundSchema(schema)),
|
|
609
|
+
table: tableName,
|
|
610
|
+
actions: [addColumnAction(ddlColumn)]
|
|
611
|
+
}));
|
|
612
|
+
const dropTempDefault = await lowerer.lowerToExecuteRequest(alterTable({
|
|
613
|
+
...ifDefined("schema", boundSchema(schema)),
|
|
614
|
+
table: tableName,
|
|
615
|
+
actions: [dropDefaultAction(columnName)]
|
|
616
|
+
}));
|
|
508
617
|
const absent = await lowerer.lowerToExecuteRequest(columnExistsAst({
|
|
509
618
|
schema,
|
|
510
619
|
table: tableName,
|
|
@@ -532,10 +641,10 @@ async function buildAddNotNullColumnWithTemporaryDefaultOperation(options) {
|
|
|
532
641
|
precheck: [step(`ensure column "${columnName}" is missing`, absent.sql, absent.params)],
|
|
533
642
|
execute: [{
|
|
534
643
|
description: `add column "${columnName}"`,
|
|
535
|
-
sql:
|
|
644
|
+
sql: addColumn.sql
|
|
536
645
|
}, {
|
|
537
646
|
description: `drop temporary default from column "${columnName}"`,
|
|
538
|
-
sql:
|
|
647
|
+
sql: dropTempDefault.sql
|
|
539
648
|
}],
|
|
540
649
|
postcheck: [
|
|
541
650
|
step(`verify column "${columnName}" exists`, present.sql, present.params),
|
|
@@ -568,9 +677,6 @@ async function buildAddNotNullColumnWithTemporaryDefaultOperation(options) {
|
|
|
568
677
|
* `PostgresOpFactoryCall` union.
|
|
569
678
|
*/
|
|
570
679
|
const POSTGRES_MIGRATION_FACADE = "@prisma-next/postgres/migration";
|
|
571
|
-
function boundSchema(schemaName) {
|
|
572
|
-
return schemaName === UNBOUND_NAMESPACE_ID ? void 0 : schemaName;
|
|
573
|
-
}
|
|
574
680
|
var PostgresOpFactoryCallNode = class extends TsExpression {
|
|
575
681
|
importRequirements() {
|
|
576
682
|
return [{
|
|
@@ -998,10 +1104,8 @@ var DropDefaultCall = class extends PostgresOpFactoryCallNode {
|
|
|
998
1104
|
};
|
|
999
1105
|
/**
|
|
1000
1106
|
* Planner-internal call for adding a NOT NULL column (no contract default) to
|
|
1001
|
-
* a table that must be empty at migration time. Carries the
|
|
1002
|
-
*
|
|
1003
|
-
* DDL) plus the parameters needed to lower the typed pre/postchecks at render
|
|
1004
|
-
* time.
|
|
1107
|
+
* a table that must be empty at migration time. Carries the typed `DdlColumn`
|
|
1108
|
+
* and lowers it to an ADD COLUMN execute step via the adapter at `toOp` time.
|
|
1005
1109
|
*
|
|
1006
1110
|
* No authored `PostgresMigration` method: this call is only emitted by the
|
|
1007
1111
|
* planner, never hand-written by migration authors.
|
|
@@ -1012,20 +1116,20 @@ var AddNotNullColumnDirectCall = class extends PostgresOpFactoryCallNode {
|
|
|
1012
1116
|
schemaName;
|
|
1013
1117
|
tableName;
|
|
1014
1118
|
columnName;
|
|
1015
|
-
|
|
1119
|
+
column;
|
|
1016
1120
|
label;
|
|
1017
|
-
constructor(schemaName, tableName, columnName,
|
|
1121
|
+
constructor(schemaName, tableName, columnName, column) {
|
|
1018
1122
|
super();
|
|
1019
1123
|
this.schemaName = schemaName;
|
|
1020
1124
|
this.tableName = tableName;
|
|
1021
1125
|
this.columnName = columnName;
|
|
1022
|
-
this.
|
|
1126
|
+
this.column = column;
|
|
1023
1127
|
this.label = `Add column ${columnName} to ${tableName}`;
|
|
1024
1128
|
this.freeze();
|
|
1025
1129
|
}
|
|
1026
1130
|
async toOp(lowerer) {
|
|
1027
1131
|
if (lowerer === void 0) throw new Error(`AddNotNullColumnDirectCall.toOp: a lowerer is required on the Postgres planner path (column "${this.columnName}" on table "${this.tableName}"). Pass the control adapter to createPostgresMigrationPlanner.`);
|
|
1028
|
-
return addNotNullColumnDirect(this.schemaName, this.tableName, this.
|
|
1132
|
+
return addNotNullColumnDirect(this.schemaName, this.tableName, this.column, lowerer);
|
|
1029
1133
|
}
|
|
1030
1134
|
renderTypeScript() {
|
|
1031
1135
|
return `rawSql(${jsonToTsSource({
|
|
@@ -1041,9 +1145,9 @@ var AddNotNullColumnDirectCall = class extends PostgresOpFactoryCallNode {
|
|
|
1041
1145
|
/**
|
|
1042
1146
|
* Planner-internal call for adding a NOT NULL column (no contract default)
|
|
1043
1147
|
* using a temporary default value for non-empty tables. Carries all parameters
|
|
1044
|
-
* needed for `buildAddNotNullColumnWithTemporaryDefaultOperation`; the
|
|
1045
|
-
* pre/postchecks are lowered
|
|
1046
|
-
*
|
|
1148
|
+
* needed for `buildAddNotNullColumnWithTemporaryDefaultOperation`; both the
|
|
1149
|
+
* typed ADD COLUMN execute step and the pre/postchecks are lowered via the
|
|
1150
|
+
* adapter at `toOp` time.
|
|
1047
1151
|
*
|
|
1048
1152
|
* No authored `PostgresMigration` method: this call is only emitted by the
|
|
1049
1153
|
* planner, never hand-written by migration authors.
|
|
@@ -1484,7 +1588,74 @@ var DataTransformCall = class extends PostgresOpFactoryCallNode {
|
|
|
1484
1588
|
}];
|
|
1485
1589
|
}
|
|
1486
1590
|
};
|
|
1591
|
+
var CreatePostgresRlsPolicyCall = class extends PostgresOpFactoryCallNode {
|
|
1592
|
+
factoryName = "createRlsPolicy";
|
|
1593
|
+
operationClass = "additive";
|
|
1594
|
+
schemaName;
|
|
1595
|
+
tableName;
|
|
1596
|
+
policy;
|
|
1597
|
+
label;
|
|
1598
|
+
constructor(schemaName, tableName, policy) {
|
|
1599
|
+
super();
|
|
1600
|
+
this.schemaName = schemaName;
|
|
1601
|
+
this.tableName = tableName;
|
|
1602
|
+
this.policy = policy;
|
|
1603
|
+
this.label = `Create RLS policy "${policy.name}" on "${tableName}"`;
|
|
1604
|
+
this.freeze();
|
|
1605
|
+
}
|
|
1606
|
+
async toOp(lowerer) {
|
|
1607
|
+
if (lowerer === void 0) throw new Error(`CreatePostgresRlsPolicyCall.toOp: a lowerer is required on the Postgres planner path (policy "${this.policy.name}" on table "${this.tableName}"). Pass the control adapter to createPostgresMigrationPlanner.`);
|
|
1608
|
+
return createRlsPolicy(this.schemaName, this.tableName, this.policy, lowerer);
|
|
1609
|
+
}
|
|
1610
|
+
renderTypeScript() {
|
|
1611
|
+
return `createRlsPolicy(${jsonToTsSource(this.schemaName)}, ${jsonToTsSource(this.tableName)}, ${jsonToTsSource(this.policy)})`;
|
|
1612
|
+
}
|
|
1613
|
+
};
|
|
1614
|
+
var DropPostgresRlsPolicyCall = class extends PostgresOpFactoryCallNode {
|
|
1615
|
+
factoryName = "dropRlsPolicy";
|
|
1616
|
+
operationClass = "destructive";
|
|
1617
|
+
schemaName;
|
|
1618
|
+
tableName;
|
|
1619
|
+
policyName;
|
|
1620
|
+
label;
|
|
1621
|
+
constructor(schemaName, tableName, policyName) {
|
|
1622
|
+
super();
|
|
1623
|
+
this.schemaName = schemaName;
|
|
1624
|
+
this.tableName = tableName;
|
|
1625
|
+
this.policyName = policyName;
|
|
1626
|
+
this.label = `Drop RLS policy "${policyName}" on "${tableName}"`;
|
|
1627
|
+
this.freeze();
|
|
1628
|
+
}
|
|
1629
|
+
async toOp(lowerer) {
|
|
1630
|
+
if (lowerer === void 0) throw new Error(`DropPostgresRlsPolicyCall.toOp: a lowerer is required on the Postgres planner path (policy "${this.policyName}" on table "${this.tableName}"). Pass the control adapter to createPostgresMigrationPlanner.`);
|
|
1631
|
+
return dropRlsPolicy(this.schemaName, this.tableName, this.policyName, lowerer);
|
|
1632
|
+
}
|
|
1633
|
+
renderTypeScript() {
|
|
1634
|
+
return `dropRlsPolicy(${jsonToTsSource(this.schemaName)}, ${jsonToTsSource(this.tableName)}, ${jsonToTsSource(this.policyName)})`;
|
|
1635
|
+
}
|
|
1636
|
+
};
|
|
1637
|
+
var EnableRowLevelSecurityCall = class extends PostgresOpFactoryCallNode {
|
|
1638
|
+
factoryName = "enableRowLevelSecurity";
|
|
1639
|
+
operationClass = "additive";
|
|
1640
|
+
schemaName;
|
|
1641
|
+
tableName;
|
|
1642
|
+
label;
|
|
1643
|
+
constructor(schemaName, tableName) {
|
|
1644
|
+
super();
|
|
1645
|
+
this.schemaName = schemaName;
|
|
1646
|
+
this.tableName = tableName;
|
|
1647
|
+
this.label = `Enable row-level security on "${tableName}"`;
|
|
1648
|
+
this.freeze();
|
|
1649
|
+
}
|
|
1650
|
+
async toOp(lowerer) {
|
|
1651
|
+
if (lowerer === void 0) throw new Error(`EnableRowLevelSecurityCall.toOp: a lowerer is required on the Postgres planner path (table "${this.tableName}"). Pass the control adapter to createPostgresMigrationPlanner.`);
|
|
1652
|
+
return enableRowLevelSecurity(this.schemaName, this.tableName, lowerer);
|
|
1653
|
+
}
|
|
1654
|
+
renderTypeScript() {
|
|
1655
|
+
return `enableRowLevelSecurity(${jsonToTsSource(this.schemaName)}, ${jsonToTsSource(this.tableName)})`;
|
|
1656
|
+
}
|
|
1657
|
+
};
|
|
1487
1658
|
//#endregion
|
|
1488
|
-
export {
|
|
1659
|
+
export { installExtension as A, EnableRowLevelSecurityCall as C, postgresDefaultToDdlColumnDefault as D, SetNotNullCall as E, buildTargetDetails as O, DropTableCall as S, SetDefaultCall as T, DropConstraintCall as _, AddNotNullColumnWithTempDefaultCall as a, DropNotNullCall as b, AlterColumnTypeCall as c, CreatePostgresRlsPolicyCall as d, CreateSchemaCall as f, DropColumnCall as g, DropCheckConstraintCall as h, AddNotNullColumnDirectCall as i, createExtension as k, CreateExtensionCall as l, DataTransformCall as m, AddColumnCall as n, AddPrimaryKeyCall as o, CreateTableCall as p, AddForeignKeyCall as r, AddUniqueCall as s, AddCheckConstraintCall as t, CreateIndexCall as u, DropDefaultCall as v, RawSqlCall as w, DropPostgresRlsPolicyCall as x, DropIndexCall as y };
|
|
1489
1660
|
|
|
1490
|
-
//# sourceMappingURL=op-factory-call-
|
|
1661
|
+
//# sourceMappingURL=op-factory-call-DcY4BHNh.mjs.map
|