@contember/schema-migrations 1.4.0-rc.2 → 1.4.0-rc.4

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.
Files changed (24) hide show
  1. package/dist/src/modifications/columns/CreateColumnModification.d.ts +1 -0
  2. package/dist/src/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  3. package/dist/src/modifications/columns/CreateColumnModification.js +27 -15
  4. package/dist/src/modifications/columns/CreateColumnModification.js.map +1 -1
  5. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts +1 -0
  6. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  7. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +27 -13
  8. package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  9. package/dist/src/modifications/columns/columnUtils.d.ts +9 -5
  10. package/dist/src/modifications/columns/columnUtils.d.ts.map +1 -1
  11. package/dist/src/modifications/columns/columnUtils.js +15 -15
  12. package/dist/src/modifications/columns/columnUtils.js.map +1 -1
  13. package/dist/src/tsconfig.tsbuildinfo +1 -1
  14. package/dist/tests/cases/integration/createColumn.test.js +37 -2
  15. package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
  16. package/dist/tests/cases/integration/updateColumnDefinition.test.js +19 -0
  17. package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
  18. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  19. package/package.json +7 -7
  20. package/src/modifications/columns/CreateColumnModification.ts +32 -16
  21. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +30 -14
  22. package/src/modifications/columns/columnUtils.ts +22 -16
  23. package/tests/cases/integration/createColumn.test.ts +35 -2
  24. package/tests/cases/integration/updateColumnDefinition.test.ts +20 -0
@@ -20,6 +20,7 @@ export interface CreateColumnModificationData {
20
20
  field: Model.AnyColumn;
21
21
  fillValue?: JSONValue;
22
22
  copyValue?: string;
23
+ valueMigrationStrategy?: 'using' | 'update';
23
24
  }
24
25
  export declare const createColumnModification: import("../ModificationHandler").ModificationType<"createColumn", CreateColumnModificationData>;
25
26
  export declare class CreateColumnDiffer implements Differ {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateColumnModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAY,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AAC/F,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAM5F,qBAAa,+BAAgC,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAC5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAgC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA3D,IAAI,EAAE,4BAA4B,EAAmB,MAAM,EAAE,MAAM;IAEzF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IA+B1C,gBAAgB,IAAI,aAAa;IAIxC,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE;;;;CAS3D;AAED,MAAM,WAAW,4BAA4B;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAGD,eAAO,MAAM,wBAAwB,iGAGnC,CAAA;AAEF,qBAAa,kBAAmB,YAAW,MAAM;IAChD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAYxD"}
1
+ {"version":3,"file":"CreateColumnModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAY,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AAC/F,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAM5F,qBAAa,+BAAgC,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAC5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAgC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA3D,IAAI,EAAE,4BAA4B,EAAmB,MAAM,EAAE,MAAM;IAEzF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IA8C1C,gBAAgB,IAAI,aAAa;IAIxC,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE;;;;CAS3D;AAED,MAAM,WAAW,4BAA4B;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sBAAsB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAC3C;AAGD,eAAO,MAAM,wBAAwB,iGAGnC,CAAA;AAEF,qBAAa,kBAAmB,YAAW,MAAM;IAChD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAYxD"}
@@ -18,27 +18,39 @@ class CreateColumnModificationHandler {
18
18
  return;
19
19
  }
20
20
  const column = this.data.field;
21
- const hasSeed = this.data.fillValue !== undefined || this.data.copyValue !== undefined;
22
21
  const columnType = (0, columnUtils_1.getColumnSqlType)(column);
22
+ const seedExpression = (0, columnUtils_2.formatSeedExpression)({
23
+ model: this.schema.model,
24
+ entity,
25
+ columnType,
26
+ fillValue: this.data.fillValue,
27
+ copyValue: this.data.copyValue,
28
+ });
23
29
  builder.addColumn(entity.tableName, {
24
30
  [column.columnName]: {
25
31
  type: columnType,
26
- notNull: !column.nullable && !hasSeed,
32
+ notNull: !column.nullable && seedExpression === null,
27
33
  sequenceGenerated: column.sequence,
28
34
  },
29
35
  });
30
- if (hasSeed) {
31
- (0, columnUtils_2.fillSeed)({
32
- builder,
33
- type: 'creating',
34
- model: this.schema.model,
35
- entity,
36
- columnName: column.columnName,
37
- nullable: column.nullable,
38
- columnType,
39
- copyValue: this.data.copyValue,
40
- fillValue: this.data.fillValue,
41
- });
36
+ if (seedExpression !== null) {
37
+ if (this.data.valueMigrationStrategy === 'using') {
38
+ builder.alterColumn(entity.tableName, column.columnName, {
39
+ notNull: !column.nullable ? true : undefined,
40
+ type: columnType,
41
+ using: seedExpression,
42
+ });
43
+ }
44
+ else {
45
+ (0, columnUtils_2.fillSeed)({
46
+ builder,
47
+ type: 'creating',
48
+ entity,
49
+ columnName: column.columnName,
50
+ nullable: column.nullable,
51
+ seedExpression,
52
+ });
53
+ }
42
54
  }
43
55
  }
44
56
  getSchemaUpdater() {
@@ -67,7 +79,7 @@ class CreateColumnDiffer {
67
79
  return exports.createColumnModification.createModification({
68
80
  entityName: updatedEntity.name,
69
81
  field: newField,
70
- ...(newField.default !== undefined ? { fillValue: newField.default } : {}),
82
+ ...(newField.default !== undefined ? { fillValue: newField.default, valueMigrationStrategy: 'using' } : {}),
71
83
  });
72
84
  });
73
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CreateColumnModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateColumnModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ export interface UpdateColumnDefinitionModificationData {
25
25
  definition: ColumnDefinitionAlter;
26
26
  fillValue?: JSONValue;
27
27
  copyValue?: string;
28
+ valueMigrationStrategy?: 'using' | 'update';
28
29
  }
29
30
  export declare const updateColumnDefinitionModification: import("../ModificationHandler").ModificationType<"updateColumnDefinition", UpdateColumnDefinitionModificationData>;
30
31
  export declare class UpdateColumnDefinitionDiffer implements Differ<UpdateColumnDefinitionModificationData> {
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateColumnDefinitionModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAA0C,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAO5F,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAChH,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA0C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAArE,IAAI,EAAE,sCAAsC,EAAmB,MAAM,EAAE,MAAM;IAEnG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IA0D1C,gBAAgB,IAAI,aAAa;IAexC,QAAQ;;;;CAUR;AAED,KAAK,uBAAuB,GACzB,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAC3B;IACD,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAEF,KAAK,qBAAqB,GACvB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC,GACzD;IACD,QAAQ,CAAC,EAAE,uBAAuB,CAAA;CAClC,CAAA;AAEF,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,qBAAqB,CAAA;IACjC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAEF,qBAAa,4BAA6B,YAAW,MAAM,CAAC,sCAAsC,CAAC;IAClG,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAuBxD"}
1
+ {"version":3,"file":"UpdateColumnDefinitionModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAA0C,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAO5F,qBAAa,yCAA0C,YAAW,mBAAmB,CAAC,sCAAsC,CAAC;IAChH,OAAO,CAAC,QAAQ,CAAC,IAAI;IAA0C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAArE,IAAI,EAAE,sCAAsC,EAAmB,MAAM,EAAE,MAAM;IAEnG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAyE1C,gBAAgB,IAAI,aAAa;IAexC,QAAQ;;;;CAUR;AAED,KAAK,uBAAuB,GACzB,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAC3B;IACD,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAEF,KAAK,qBAAqB,GACvB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC,GACzD;IACD,QAAQ,CAAC,EAAE,uBAAuB,CAAA;CAClC,CAAA;AAEF,MAAM,WAAW,sCAAsC;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,qBAAqB,CAAA;IACjC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sBAAsB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAC3C;AAED,eAAO,MAAM,kCAAkC,qHAG7C,CAAA;AAEF,qBAAa,4BAA6B,YAAW,MAAM,CAAC,sCAAsC,CAAC;IAClG,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAuBxD"}
@@ -27,29 +27,43 @@ class UpdateColumnDefinitionModificationHandler {
27
27
  const hasNewSequence = !oldColumn.sequence && newColumn.sequence;
28
28
  const hasNewType = newColumn.columnType !== oldColumn.columnType;
29
29
  const columnType = (0, columnUtils_1.getColumnSqlType)(newColumn);
30
+ const hasNullableChanged = oldColumn.nullable !== newColumn.nullable;
30
31
  const usingCast = `${(0, dbHelpers_1.wrapIdentifier)(oldColumn.columnName)}::${columnType}`;
31
- const hasSeed = this.data.fillValue !== undefined || this.data.copyValue !== undefined;
32
+ const seedExpression = (0, columnUtils_2.formatSeedExpression)({
33
+ model: this.schema.model,
34
+ entity,
35
+ columnType,
36
+ fillValue: this.data.fillValue,
37
+ copyValue: this.data.copyValue,
38
+ });
39
+ const hasSeed = seedExpression !== null;
40
+ const migrateWithUsing = hasSeed && this.data.valueMigrationStrategy === 'using';
41
+ const migrateWithUpdate = hasSeed && this.data.valueMigrationStrategy !== 'using';
32
42
  builder.alterColumn(entity.tableName, oldColumn.columnName, {
33
- type: hasNewSequence || hasNewType ? columnType : undefined,
34
- notNull: oldColumn.nullable !== newColumn.nullable && (!hasSeed || newColumn.nullable) ? !newColumn.nullable : undefined,
35
- using: hasNewSequence
36
- ? `COALESCE(${usingCast}, nextval(PG_GET_SERIAL_SEQUENCE(${(0, database_migrations_1.escapeValue)(entity.tableName)}, ${(0, database_migrations_1.escapeValue)(oldColumn.columnName)})))`
37
- : hasNewType
38
- ? usingCast
39
- : undefined,
43
+ type: hasNewSequence || hasNewType || migrateWithUsing ? columnType : undefined,
44
+ notNull: hasNullableChanged && (!migrateWithUpdate || newColumn.nullable) ? !newColumn.nullable : undefined,
45
+ using: (() => {
46
+ if (hasNewSequence) {
47
+ return `COALESCE(${usingCast}, nextval(PG_GET_SERIAL_SEQUENCE(${(0, database_migrations_1.escapeValue)(entity.tableName)}, ${(0, database_migrations_1.escapeValue)(oldColumn.columnName)})))`;
48
+ }
49
+ if (migrateWithUsing) {
50
+ return `COALESCE(${usingCast}, ${seedExpression})`;
51
+ }
52
+ if (hasNewType) {
53
+ return usingCast;
54
+ }
55
+ return undefined;
56
+ })(),
40
57
  sequenceGenerated: oldColumn.sequence && !newColumn.sequence ? false : (!oldColumn.sequence ? newColumn.sequence : undefined),
41
58
  });
42
- if (hasSeed) {
59
+ if (migrateWithUpdate) {
43
60
  (0, columnUtils_2.fillSeed)({
44
61
  builder,
45
62
  type: 'updating',
46
- model: this.schema.model,
47
63
  entity,
48
64
  columnName: oldColumn.columnName,
49
65
  nullable: newColumn.nullable,
50
- columnType,
51
- copyValue: this.data.copyValue,
52
- fillValue: this.data.fillValue,
66
+ seedExpression,
53
67
  });
54
68
  }
55
69
  const seqAlter = [];
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateColumnDefinitionModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateColumnDefinitionModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
1
  import { JSONValue, Model } from '@contember/schema';
2
2
  import { MigrationBuilder } from '@contember/database-migrations';
3
- export declare const fillSeed: ({ builder, fillValue, copyValue, entity, columnName, nullable, model, columnType, type }: {
4
- model: Model.Schema;
3
+ export declare const fillSeed: ({ builder, entity, columnName, nullable, type, seedExpression }: {
5
4
  entity: Model.Entity;
6
5
  columnName: string;
7
- columnType: string;
8
6
  nullable: boolean;
9
7
  builder: MigrationBuilder;
10
- fillValue?: JSONValue | undefined;
11
- copyValue?: string | undefined;
12
8
  type: 'creating' | 'updating';
9
+ seedExpression: string;
13
10
  }) => void;
11
+ export declare const formatSeedExpression: ({ model, entity, columnType, fillValue, copyValue }: {
12
+ model: Model.Schema;
13
+ entity: Model.Entity;
14
+ columnType: string;
15
+ fillValue?: JSONValue | undefined;
16
+ copyValue?: string | undefined;
17
+ }) => string | null;
14
18
  //# sourceMappingURL=columnUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnUtils.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/columnUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAe,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAG9E,eAAO,MAAM,QAAQ;WACb,MAAM,MAAM;YACX,MAAM,MAAM;gBACR,MAAM;gBACN,MAAM;cACR,OAAO;aACR,gBAAgB;;;UAGnB,UAAU,GAAG,UAAU;UAuB7B,CAAA"}
1
+ {"version":3,"file":"columnUtils.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/columnUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAe,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAG9E,eAAO,MAAM,QAAQ;YACZ,MAAM,MAAM;gBACR,MAAM;cACR,OAAO;aACR,gBAAgB;UACnB,UAAU,GAAG,UAAU;oBACb,MAAM;UAgBtB,CAAA;AAGD,eAAO,MAAM,oBAAoB;WACzB,MAAM,MAAM;YACX,MAAM,MAAM;gBACR,MAAM;;;MAGf,MAAM,GAAG,IAQZ,CAAA"}
@@ -1,24 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fillSeed = void 0;
3
+ exports.formatSeedExpression = exports.fillSeed = void 0;
4
4
  const dbHelpers_1 = require("../../utils/dbHelpers");
5
- const exceptions_1 = require("../../exceptions");
6
5
  const database_migrations_1 = require("@contember/database-migrations");
7
6
  const schema_utils_1 = require("@contember/schema-utils");
8
- const fillSeed = ({ builder, fillValue, copyValue, entity, columnName, nullable, model, columnType, type }) => {
7
+ const fillSeed = ({ builder, entity, columnName, nullable, type, seedExpression }) => {
9
8
  const where = type === 'updating' ? ` WHERE ${(0, dbHelpers_1.wrapIdentifier)(columnName)} IS NULL` : '';
10
- if (fillValue !== undefined) {
11
- builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
12
- SET ${(0, dbHelpers_1.wrapIdentifier)(columnName)} = ${(0, database_migrations_1.escapeValue)(fillValue)}${where}`);
13
- }
14
- else if (copyValue !== undefined) {
15
- const copyFrom = (0, schema_utils_1.getColumnName)(model, entity, copyValue);
16
- builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
17
- SET ${(0, dbHelpers_1.wrapIdentifier)(columnName)} = ${(0, dbHelpers_1.wrapIdentifier)(copyFrom)}::${columnType}${where}`);
18
- }
19
- else {
20
- throw new exceptions_1.ImplementationException();
21
- }
9
+ builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
10
+ SET ${(0, dbHelpers_1.wrapIdentifier)(columnName)} = ${seedExpression}${where}`);
22
11
  // event log uses deferred constraint triggers, we need to fire them before ALTER
23
12
  builder.sql(`SET CONSTRAINTS ALL IMMEDIATE`);
24
13
  builder.sql(`SET CONSTRAINTS ALL DEFERRED`);
@@ -29,4 +18,15 @@ const fillSeed = ({ builder, fillValue, copyValue, entity, columnName, nullable,
29
18
  }
30
19
  };
31
20
  exports.fillSeed = fillSeed;
21
+ const formatSeedExpression = ({ model, entity, columnType, fillValue, copyValue }) => {
22
+ if (fillValue !== undefined) {
23
+ return (0, database_migrations_1.escapeValue)(fillValue);
24
+ }
25
+ else if (copyValue !== undefined) {
26
+ const copyFrom = (0, schema_utils_1.getColumnName)(model, entity, copyValue);
27
+ return `${(0, dbHelpers_1.wrapIdentifier)(copyFrom)}::${columnType}`;
28
+ }
29
+ return null;
30
+ };
31
+ exports.formatSeedExpression = formatSeedExpression;
32
32
  //# sourceMappingURL=columnUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnUtils.js","sourceRoot":"","sources":["../../../../src/modifications/columns/columnUtils.ts"],"names":[],"mappings":";;;AAAA,qDAAsD;AACtD,iDAA0D;AAE1D,wEAA8E;AAC9E,0DAAuD;AAEhD,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAU9G,EAAE,EAAE;IACJ,MAAM,KAAK,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,IAAA,0BAAc,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACvF,IAAI,SAAS,KAAK,SAAS,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC;2BAC7B,IAAA,0BAAc,EAAC,UAAU,CAAC,MAAM,IAAA,iCAAW,EAAC,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;KAC1F;SAAM,IAAI,SAAS,KAAK,SAAS,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAA,4BAAa,EAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,UAAU,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC;2BAC7B,IAAA,0BAAc,EAAC,UAAU,CAAC,MAAM,IAAA,0BAAc,EAAC,QAAQ,CAAC,KAAK,UAAU,GAAG,KAAK,EAAE,CAAC,CAAA;KAC3G;SAAM;QACN,MAAM,IAAI,oCAAuB,EAAE,CAAA;KACnC;IAED,iFAAiF;IACjF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAE3C,IAAI,CAAC,QAAQ,EAAE;QACd,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE;YACjD,OAAO,EAAE,IAAI;SACb,CAAC,CAAA;KACF;AACF,CAAC,CAAA;AAhCY,QAAA,QAAQ,YAgCpB"}
1
+ {"version":3,"file":"columnUtils.js","sourceRoot":"","sources":["../../../../src/modifications/columns/columnUtils.ts"],"names":[],"mappings":";;;AAAA,qDAAsD;AAEtD,wEAA8E;AAC9E,0DAAuD;AAEhD,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAOrF,EAAE,EAAE;IAEJ,MAAM,KAAK,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,IAAA,0BAAc,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACvF,OAAO,CAAC,GAAG,CAAC,UAAU,IAAA,0BAAc,EAAC,MAAM,CAAC,SAAS,CAAC;WAC5C,IAAA,0BAAc,EAAC,UAAU,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC,CAAA;IAEnE,iFAAiF;IACjF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAE3C,IAAI,CAAC,QAAQ,EAAE;QACd,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE;YACjD,OAAO,EAAE,IAAI;SACb,CAAC,CAAA;KACF;AACF,CAAC,CAAA;AAtBY,QAAA,QAAQ,YAsBpB;AAGM,MAAM,oBAAoB,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAMrF,EAAiB,EAAE;IACnB,IAAI,SAAS,KAAK,SAAS,EAAE;QAC5B,OAAO,IAAA,iCAAW,EAAC,SAAS,CAAC,CAAA;KAC7B;SAAM,IAAI,SAAS,KAAK,SAAS,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAA,4BAAa,EAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QACxD,OAAO,GAAG,IAAA,0BAAc,EAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAA;KACnD;IACD,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAdY,QAAA,oBAAoB,wBAchC"}