@contember/schema-migrations 1.2.0-alpha.9 → 1.2.0-beta.2
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/src/Migration.d.ts +2 -0
- package/dist/src/Migration.d.ts.map +1 -1
- package/dist/src/Migration.js +2 -2
- package/dist/src/Migration.js.map +1 -1
- package/dist/src/MigrationCreator.d.ts +3 -1
- package/dist/src/MigrationCreator.d.ts.map +1 -1
- package/dist/src/MigrationCreator.js +2 -2
- package/dist/src/MigrationCreator.js.map +1 -1
- package/dist/src/MigrationFilesManager.d.ts.map +1 -1
- package/dist/src/MigrationFilesManager.js +10 -19
- package/dist/src/MigrationFilesManager.js.map +1 -1
- package/dist/src/MigrationsResolver.d.ts.map +1 -1
- package/dist/src/MigrationsResolver.js +1 -0
- package/dist/src/MigrationsResolver.js.map +1 -1
- package/dist/src/SchemaDiffer.d.ts +6 -1
- package/dist/src/SchemaDiffer.d.ts.map +1 -1
- package/dist/src/SchemaDiffer.js +12 -7
- package/dist/src/SchemaDiffer.js.map +1 -1
- package/dist/src/SchemaMigrator.d.ts +2 -1
- package/dist/src/SchemaMigrator.d.ts.map +1 -1
- package/dist/src/SchemaMigrator.js.map +1 -1
- package/dist/src/modifications/ModificationHandler.d.ts +7 -4
- package/dist/src/modifications/ModificationHandler.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandler.js.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.d.ts +2 -2
- package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
- package/dist/src/modifications/ModificationHandlerFactory.js +2 -0
- package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
- package/dist/src/modifications/columns/CreateColumnModification.d.ts +1 -3
- package/dist/src/modifications/columns/CreateColumnModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/CreateColumnModification.js +3 -3
- package/dist/src/modifications/columns/CreateColumnModification.js.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts +3 -5
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js +24 -20
- package/dist/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts +1 -3
- package/dist/src/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
- package/dist/src/modifications/columns/UpdateColumnNameModification.js +7 -7
- package/dist/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js +2 -2
- package/dist/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
- package/dist/src/modifications/differs/RemoveChangedFieldDiffer.d.ts +1 -3
- package/dist/src/modifications/differs/RemoveChangedFieldDiffer.d.ts.map +1 -1
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts +1 -2
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts.map +1 -1
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +7 -20
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.js.map +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/CreateEntityModification.js +2 -2
- package/dist/src/modifications/entities/CreateEntityModification.js.map +1 -1
- package/dist/src/modifications/entities/RemoveEntityModification.d.ts +2 -1
- package/dist/src/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/RemoveEntityModification.js.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts +2 -2
- package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
- package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
- package/dist/src/modifications/fields/RemoveFieldModification.js +4 -4
- package/dist/src/modifications/fields/RemoveFieldModification.js.map +1 -1
- package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts +2 -2
- package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
- package/dist/src/modifications/fields/UpdateFieldNameModification.js +7 -7
- package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
- package/dist/src/modifications/indexes/CreateIndexModification.js +3 -3
- package/dist/src/modifications/indexes/CreateIndexModification.js.map +1 -1
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +3 -4
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js +2 -2
- package/dist/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts +3 -4
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +10 -2
- package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts +1 -3
- package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.d.ts +3 -4
- package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/CreateRelationModification.js +17 -6
- package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts +1 -3
- package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts +1 -3
- package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts +1 -3
- package/dist/src/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts +1 -3
- package/dist/src/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts +1 -3
- package/dist/src/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts +1 -3
- package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts +1 -3
- package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
- package/dist/src/modifications/settings/UpdateSettingsModification.d.ts +28 -0
- package/dist/src/modifications/settings/UpdateSettingsModification.d.ts.map +1 -0
- package/dist/src/modifications/settings/UpdateSettingsModification.js +64 -0
- package/dist/src/modifications/settings/UpdateSettingsModification.js.map +1 -0
- package/dist/src/modifications/settings/index.d.ts +2 -0
- package/dist/src/modifications/settings/index.d.ts.map +1 -0
- package/dist/src/modifications/settings/index.js +18 -0
- package/dist/src/modifications/settings/index.js.map +1 -0
- package/dist/src/modifications/utils/columnUtils.d.ts +3 -0
- package/dist/src/modifications/utils/columnUtils.d.ts.map +1 -0
- package/dist/src/modifications/utils/columnUtils.js +9 -0
- package/dist/src/modifications/utils/columnUtils.js.map +1 -0
- package/dist/src/modifications/utils/createJunctionTable.d.ts +2 -1
- package/dist/src/modifications/utils/createJunctionTable.d.ts.map +1 -1
- package/dist/src/modifications/utils/createJunctionTable.js +7 -5
- package/dist/src/modifications/utils/createJunctionTable.js.map +1 -1
- package/dist/src/modifications/utils/diffUtils.d.ts +14 -12
- package/dist/src/modifications/utils/diffUtils.d.ts.map +1 -1
- package/dist/src/modifications/utils/diffUtils.js.map +1 -1
- package/dist/src/modifications/utils/schemaMeta.d.ts +8 -0
- package/dist/src/modifications/utils/schemaMeta.d.ts.map +1 -0
- package/dist/src/modifications/utils/schemaMeta.js +13 -0
- package/dist/src/modifications/utils/schemaMeta.js.map +1 -0
- package/dist/src/modifications/utils/schemaUpdateUtils.d.ts +4 -2
- package/dist/src/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
- package/dist/src/modifications/utils/schemaUpdateUtils.js +24 -2
- package/dist/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
- package/dist/src/modifications/utils/viewDependencies.d.ts +4 -2
- package/dist/src/modifications/utils/viewDependencies.d.ts.map +1 -1
- package/dist/src/modifications/utils/viewDependencies.js +29 -6
- package/dist/src/modifications/utils/viewDependencies.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +3 -2
- package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js.map +1 -1
- package/dist/tests/cases/integration/createColumn.test.js +36 -0
- package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
- package/dist/tests/cases/integration/createManyHasMany.test.js +3 -2
- package/dist/tests/cases/integration/createManyHasMany.test.js.map +1 -1
- package/dist/tests/cases/integration/createView.test.js +80 -0
- package/dist/tests/cases/integration/createView.test.js.map +1 -1
- package/dist/tests/cases/integration/removeField.test.js +72 -0
- package/dist/tests/cases/integration/removeField.test.js.map +1 -1
- package/dist/tests/cases/integration/takenIndexName.test.d.ts +2 -0
- package/dist/tests/cases/integration/takenIndexName.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/takenIndexName.test.js +307 -0
- package/dist/tests/cases/integration/takenIndexName.test.js.map +1 -0
- package/dist/tests/cases/integration/updateColumnDefinition.test.js +160 -0
- package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
- package/dist/tests/scripts/checkCreateConsistentMigrations.js +5 -4
- package/dist/tests/scripts/checkCreateConsistentMigrations.js.map +1 -1
- package/dist/tests/src/tests.d.ts.map +1 -1
- package/dist/tests/src/tests.js +15 -5
- package/dist/tests/src/tests.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/Migration.ts +3 -1
- package/src/MigrationCreator.ts +2 -1
- package/src/MigrationFilesManager.ts +10 -20
- package/src/MigrationsResolver.ts +1 -0
- package/src/SchemaDiffer.ts +18 -7
- package/src/SchemaMigrator.ts +2 -1
- package/src/modifications/ModificationHandler.ts +5 -4
- package/src/modifications/ModificationHandlerFactory.ts +4 -1
- package/src/modifications/columns/CreateColumnModification.ts +3 -2
- package/src/modifications/columns/UpdateColumnDefinitionModification.ts +33 -24
- package/src/modifications/columns/UpdateColumnNameModification.ts +42 -42
- package/src/modifications/constraints/CreateUniqueConstraintModification.ts +2 -2
- package/src/modifications/differs/RemoveChangedViewDiffer.ts +9 -22
- package/src/modifications/entities/CreateEntityModification.ts +2 -1
- package/src/modifications/entities/RemoveEntityModification.ts +2 -1
- package/src/modifications/entities/UpdateEntityNameModification.ts +2 -1
- package/src/modifications/fields/RemoveFieldModification.ts +4 -4
- package/src/modifications/fields/UpdateFieldNameModification.ts +9 -8
- package/src/modifications/indexes/CreateIndexModification.ts +3 -3
- package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +13 -4
- package/src/modifications/relations/ConvertOneToManyRelationModification.ts +19 -3
- package/src/modifications/relations/CreateRelationModification.ts +33 -11
- package/src/modifications/settings/UpdateSettingsModification.ts +87 -0
- package/src/modifications/settings/index.ts +1 -0
- package/src/modifications/utils/columnUtils.ts +5 -0
- package/src/modifications/utils/createJunctionTable.ts +7 -5
- package/src/modifications/utils/diffUtils.ts +12 -12
- package/src/modifications/utils/schemaMeta.ts +18 -0
- package/src/modifications/utils/schemaUpdateUtils.ts +22 -2
- package/src/modifications/utils/viewDependencies.ts +28 -5
- package/src/tsconfig.json +2 -2
- package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +3 -2
- package/tests/cases/integration/createColumn.test.ts +33 -0
- package/tests/cases/integration/createManyHasMany.test.ts +3 -2
- package/tests/cases/integration/createView.test.ts +70 -0
- package/tests/cases/integration/removeField.test.ts +58 -0
- package/tests/cases/integration/takenIndexName.test.ts +314 -0
- package/tests/cases/integration/updateColumnDefinition.test.ts +138 -1
- package/tests/scripts/checkCreateConsistentMigrations.ts +3 -2
- package/tests/src/tests.ts +21 -11
package/dist/src/Migration.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { SchemaValidatorSkippedErrors } from '@contember/schema-utils';
|
|
1
2
|
export interface MigrationInfo {
|
|
2
3
|
readonly version: string;
|
|
3
4
|
readonly name: string;
|
|
4
5
|
readonly formatVersion: number;
|
|
6
|
+
readonly skippedErrors?: SchemaValidatorSkippedErrors[];
|
|
5
7
|
}
|
|
6
8
|
interface Migration extends MigrationInfo {
|
|
7
9
|
readonly modifications: readonly Migration.Modification[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Migration.d.ts","sourceRoot":"","sources":["../../src/Migration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Migration.d.ts","sourceRoot":"","sources":["../../src/Migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAGtE,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,4BAA4B,EAAE,CAAA;CACvD;AAED,UAAU,SAAU,SAAQ,aAAa;IACxC,QAAQ,CAAC,aAAa,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE,CAAA;CACzD;AAED,kBAAU,SAAS,CAAC;IACnB,KAAY,YAAY,CAAC,IAAI,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,IAAI;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC3F;AAED,eAAO,MAAM,0BAA0B,cAAe,SAAS,KAAG,MAMjE,CAAA;AACD,OAAO,EAAE,SAAS,EAAE,CAAA"}
|
package/dist/src/Migration.js
CHANGED
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.calculateMigrationChecksum = void 0;
|
|
7
|
-
const
|
|
7
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
8
8
|
const calculateMigrationChecksum = (migration) => {
|
|
9
9
|
const canonicalMigration = JSON.stringify(migration.modifications);
|
|
10
|
-
return
|
|
10
|
+
return node_crypto_1.default //
|
|
11
11
|
.createHash('md5')
|
|
12
12
|
.update(canonicalMigration)
|
|
13
13
|
.digest('hex');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Migration.js","sourceRoot":"","sources":["../../src/Migration.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Migration.js","sourceRoot":"","sources":["../../src/Migration.ts"],"names":[],"mappings":";;;;;;AACA,8DAAgC;AAiBzB,MAAM,0BAA0B,GAAG,CAAC,SAAoB,EAAU,EAAE;IAC1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IAClE,OAAO,qBAAM,CAAC,EAAE;SACd,UAAU,CAAC,KAAK,CAAC;SACjB,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC,CAAA;AANY,QAAA,0BAA0B,8BAMtC"}
|
|
@@ -6,7 +6,9 @@ export declare class MigrationCreator {
|
|
|
6
6
|
private readonly migrationFilesManager;
|
|
7
7
|
private readonly schemaDiffer;
|
|
8
8
|
constructor(migrationFilesManager: MigrationFilesManager, schemaDiffer: SchemaDiffer);
|
|
9
|
-
prepareMigration(initialSchema: Schema, newSchema: Schema, migrationName: string
|
|
9
|
+
prepareMigration(initialSchema: Schema, newSchema: Schema, migrationName: string, { skipInitialSchemaValidation }?: {
|
|
10
|
+
skipInitialSchemaValidation?: boolean;
|
|
11
|
+
}): Promise<{
|
|
10
12
|
migration: Migration;
|
|
11
13
|
initialSchema: Schema;
|
|
12
14
|
} | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationCreator.d.ts","sourceRoot":"","sources":["../../src/MigrationCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,qBAAqB,EAAE,qBAAqB,EAC5C,YAAY,EAAE,YAAY;IAGtC,gBAAgB,CACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MigrationCreator.d.ts","sourceRoot":"","sources":["../../src/MigrationCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,qBAAqB,EAAE,qBAAqB,EAC5C,YAAY,EAAE,YAAY;IAGtC,gBAAgB,CACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,EAAE,2BAAmC,EAAE,GAAE;QAAE,2BAA2B,CAAC,EAAE,OAAO,CAAA;KAAO,GACrF,OAAO,CAAC;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAa5D,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAMpD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,OAAO,CAAC,eAAe;WAKT,aAAa,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,SAAS,GAAG,MAAM;CAGhF"}
|
|
@@ -8,9 +8,9 @@ class MigrationCreator {
|
|
|
8
8
|
this.migrationFilesManager = migrationFilesManager;
|
|
9
9
|
this.schemaDiffer = schemaDiffer;
|
|
10
10
|
}
|
|
11
|
-
async prepareMigration(initialSchema, newSchema, migrationName) {
|
|
11
|
+
async prepareMigration(initialSchema, newSchema, migrationName, { skipInitialSchemaValidation = false } = {}) {
|
|
12
12
|
await this.migrationFilesManager.createDirIfNotExist();
|
|
13
|
-
const modifications = this.schemaDiffer.diffSchemas(initialSchema, newSchema);
|
|
13
|
+
const modifications = this.schemaDiffer.diffSchemas(initialSchema, newSchema, { skipInitialSchemaValidation });
|
|
14
14
|
if (modifications.length === 0) {
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationCreator.js","sourceRoot":"","sources":["../../src/MigrationCreator.ts"],"names":[],"mappings":";;;AAGA,+EAAqE;AAErE,qEAAiE;AAEjE,MAAa,gBAAgB;IAC5B,YACkB,qBAA4C,EAC5C,YAA0B;QAD1B,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,iBAAY,GAAZ,YAAY,CAAc;IACzC,CAAC;IAEJ,KAAK,CAAC,gBAAgB,CACrB,aAAqB,EACrB,SAAiB,EACjB,aAAqB;
|
|
1
|
+
{"version":3,"file":"MigrationCreator.js","sourceRoot":"","sources":["../../src/MigrationCreator.ts"],"names":[],"mappings":";;;AAGA,+EAAqE;AAErE,qEAAiE;AAEjE,MAAa,gBAAgB;IAC5B,YACkB,qBAA4C,EAC5C,YAA0B;QAD1B,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,iBAAY,GAAZ,YAAY,CAAc;IACzC,CAAC;IAEJ,KAAK,CAAC,gBAAgB,CACrB,aAAqB,EACrB,SAAiB,EACjB,aAAqB,EACrB,EAAE,2BAA2B,GAAG,KAAK,KAAgD,EAAE;QAEvF,MAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,CAAA;QAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,2BAA2B,EAAE,CAAC,CAAA;QAC9G,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAA;SACX;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QAEpE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAoB;QACvC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACtF,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QACjC,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;IAEO,eAAe,CAAC,aAAuC,EAAE,IAAY;QAC5E,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,+CAAsB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACtE,OAAO,EAAE,aAAa,EAAE,qCAAc,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IACjF,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,EAAE,aAAa,EAAE,aAAa,EAAa;QACtE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,CAAA;IAChF,CAAC;CACD;AA1CD,4CA0CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationFilesManager.d.ts","sourceRoot":"","sources":["../../src/MigrationFilesManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MigrationFilesManager.d.ts","sourceRoot":"","sources":["../../src/MigrationFilesManager.ts"],"names":[],"mappings":"AAIA,cAAM,qBAAqB;aACE,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;IAEhC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1D,UAAU,CAAC,IAAI,EAAE,MAAM;IAKvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAIzC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAa7B,UAAU;IAWX,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,aAAa,EAAE,CAAC;WAclG,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB;IAKrG,OAAO,CAAC,UAAU;CAKlB;AAED,kBAAU,qBAAqB,CAAC;IAC/B,KAAY,aAAa,GAAG;QAC3B,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;KACf,CAAA;CACD;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -25,36 +25,27 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.MigrationFilesManager = void 0;
|
|
27
27
|
const MigrationVersionHelper_1 = require("./MigrationVersionHelper");
|
|
28
|
-
const fs = __importStar(require("fs"));
|
|
29
|
-
const
|
|
30
|
-
const path = __importStar(require("path"));
|
|
31
|
-
const readFile = (0, util_1.promisify)(fs.readFile);
|
|
32
|
-
const fsWrite = (0, util_1.promisify)(fs.writeFile);
|
|
33
|
-
const fsRemove = (0, util_1.promisify)(fs.unlink);
|
|
34
|
-
const fsRealpath = (0, util_1.promisify)(fs.realpath);
|
|
35
|
-
const mkdir = (0, util_1.promisify)(fs.mkdir);
|
|
36
|
-
const lstatFile = (0, util_1.promisify)(fs.lstat);
|
|
37
|
-
const readDir = (0, util_1.promisify)(fs.readdir);
|
|
38
|
-
const mvFile = (0, util_1.promisify)(fs.rename);
|
|
28
|
+
const fs = __importStar(require("node:fs/promises"));
|
|
29
|
+
const path = __importStar(require("node:path"));
|
|
39
30
|
class MigrationFilesManager {
|
|
40
31
|
constructor(directory) {
|
|
41
32
|
this.directory = directory;
|
|
42
33
|
}
|
|
43
34
|
async createFile(content, name) {
|
|
44
35
|
const path = this.formatPath(name);
|
|
45
|
-
await
|
|
46
|
-
return await
|
|
36
|
+
await fs.writeFile(path, content, { encoding: 'utf8' });
|
|
37
|
+
return await fs.realpath(path);
|
|
47
38
|
}
|
|
48
39
|
async removeFile(name) {
|
|
49
40
|
const path = this.formatPath(name);
|
|
50
|
-
await
|
|
41
|
+
await fs.unlink(path);
|
|
51
42
|
}
|
|
52
43
|
async moveFile(oldName, newName) {
|
|
53
|
-
await
|
|
44
|
+
await fs.rename(this.formatPath(oldName), this.formatPath(newName));
|
|
54
45
|
}
|
|
55
46
|
async createDirIfNotExist() {
|
|
56
47
|
try {
|
|
57
|
-
await mkdir(this.directory);
|
|
48
|
+
await fs.mkdir(this.directory);
|
|
58
49
|
}
|
|
59
50
|
catch (e) {
|
|
60
51
|
if (!(e instanceof Error) || !('code' in e) || e.code !== 'EEXIST') {
|
|
@@ -67,13 +58,13 @@ class MigrationFilesManager {
|
|
|
67
58
|
const filteredFiles = await Promise.all(files
|
|
68
59
|
.filter(file => file.endsWith(`.json`))
|
|
69
60
|
.filter(async (file) => {
|
|
70
|
-
return (await
|
|
61
|
+
return (await fs.lstat(`${this.directory}/${file}`)).isFile();
|
|
71
62
|
}));
|
|
72
63
|
return filteredFiles.sort();
|
|
73
64
|
}
|
|
74
65
|
async tryReadDir() {
|
|
75
66
|
try {
|
|
76
|
-
return await
|
|
67
|
+
return await fs.readdir(this.directory);
|
|
77
68
|
}
|
|
78
69
|
catch (e) {
|
|
79
70
|
if (e instanceof Error && 'code' in e && e.code === 'ENOENT') {
|
|
@@ -90,7 +81,7 @@ class MigrationFilesManager {
|
|
|
90
81
|
const filesWithContent = files.map(async (filename) => ({
|
|
91
82
|
filename: filename,
|
|
92
83
|
path: `${this.directory}/${filename}`,
|
|
93
|
-
content: await readFile(`${this.directory}/${filename}`, { encoding: 'utf8' }),
|
|
84
|
+
content: await fs.readFile(`${this.directory}/${filename}`, { encoding: 'utf8' }),
|
|
94
85
|
}));
|
|
95
86
|
return await Promise.all(filesWithContent);
|
|
96
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationFilesManager.js","sourceRoot":"","sources":["../../src/MigrationFilesManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"MigrationFilesManager.js","sourceRoot":"","sources":["../../src/MigrationFilesManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationsResolver.d.ts","sourceRoot":"","sources":["../../src/MigrationsResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,qBAAa,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAArB,qBAAqB,EAAE,qBAAqB;IAEzE,IAAW,SAAS,IAAI,MAAM,CAE7B;IAEY,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"MigrationsResolver.d.ts","sourceRoot":"","sources":["../../src/MigrationsResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,qBAAa,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAArB,qBAAqB,EAAE,qBAAqB;IAEzE,IAAW,SAAS,IAAI,MAAM,CAE7B;IAEY,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAYlD"}
|
|
@@ -18,6 +18,7 @@ class MigrationsResolver {
|
|
|
18
18
|
name: MigrationVersionHelper_1.MigrationVersionHelper.extractName(filename),
|
|
19
19
|
formatVersion: parsed.formatVersion || ModificationVersions_1.VERSION_INITIAL,
|
|
20
20
|
modifications: parsed.modifications,
|
|
21
|
+
...(parsed.skippedErrors ? { skippedErrors: parsed.skippedErrors } : {}),
|
|
21
22
|
};
|
|
22
23
|
});
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationsResolver.js","sourceRoot":"","sources":["../../src/MigrationsResolver.ts"],"names":[],"mappings":";;;AACA,+EAAsE;AACtE,qEAAiE;AAGjE,MAAa,kBAAkB;IAC9B,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAE7E,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAC,aAAa;QACzB,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAClC,OAAO;gBACN,OAAO,EAAE,+CAAsB,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACxD,IAAI,EAAE,+CAAsB,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,sCAAe;gBACtD,aAAa,EAAE,MAAM,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"MigrationsResolver.js","sourceRoot":"","sources":["../../src/MigrationsResolver.ts"],"names":[],"mappings":";;;AACA,+EAAsE;AACtE,qEAAiE;AAGjE,MAAa,kBAAkB;IAC9B,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAE7E,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAC,aAAa;QACzB,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAClC,OAAO;gBACN,OAAO,EAAE,+CAAsB,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACxD,IAAI,EAAE,+CAAsB,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,sCAAe;gBACtD,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAnBD,gDAmBC"}
|
|
@@ -2,13 +2,18 @@ import { Schema } from '@contember/schema';
|
|
|
2
2
|
import { ValidationError } from '@contember/schema-utils';
|
|
3
3
|
import { SchemaMigrator } from './SchemaMigrator';
|
|
4
4
|
import { Migration } from './Migration';
|
|
5
|
+
declare type DiffOptions = {
|
|
6
|
+
skipRecreateValidation?: boolean;
|
|
7
|
+
skipInitialSchemaValidation?: boolean;
|
|
8
|
+
};
|
|
5
9
|
export declare class SchemaDiffer {
|
|
6
10
|
private readonly schemaMigrator;
|
|
7
11
|
constructor(schemaMigrator: SchemaMigrator);
|
|
8
|
-
diffSchemas(originalSchema: Schema, updatedSchema: Schema,
|
|
12
|
+
diffSchemas(originalSchema: Schema, updatedSchema: Schema, { skipInitialSchemaValidation, skipRecreateValidation, }?: DiffOptions): Migration.Modification[];
|
|
9
13
|
}
|
|
10
14
|
export declare class InvalidSchemaException extends Error {
|
|
11
15
|
readonly validationErrors: ValidationError[];
|
|
12
16
|
constructor(message: string, validationErrors: ValidationError[]);
|
|
13
17
|
}
|
|
18
|
+
export {};
|
|
14
19
|
//# sourceMappingURL=SchemaDiffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaDiffer.d.ts","sourceRoot":"","sources":["../../src/SchemaDiffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAMN,eAAe,EACf,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"SchemaDiffer.d.ts","sourceRoot":"","sources":["../../src/SchemaDiffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAMN,eAAe,EACf,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAsCvC,aAAK,WAAW,GAAG;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAAC,2BAA2B,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE9F,qBAAa,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAE3D,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAC1D,2BAAmC,EACnC,sBAA8B,GAC9B,GAAE,WAAgB,GAAG,SAAS,CAAC,YAAY,EAAE;CA0E9C;AAED,qBAAa,sBAAuB,SAAQ,KAAK;aACH,gBAAgB,EAAE,eAAe,EAAE;gBAApE,OAAO,EAAE,MAAM,EAAkB,gBAAgB,EAAE,eAAe,EAAE;CAGhF"}
|
package/dist/src/SchemaDiffer.js
CHANGED
|
@@ -6,20 +6,24 @@ const exceptions_1 = require("./exceptions");
|
|
|
6
6
|
const modifications_1 = require("./modifications");
|
|
7
7
|
const differs_1 = require("./modifications/differs");
|
|
8
8
|
const indexes_1 = require("./modifications/indexes");
|
|
9
|
+
const settings_1 = require("./modifications/settings");
|
|
9
10
|
class SchemaDiffer {
|
|
10
11
|
constructor(schemaMigrator) {
|
|
11
12
|
this.schemaMigrator = schemaMigrator;
|
|
12
13
|
}
|
|
13
|
-
diffSchemas(originalSchema, updatedSchema,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
diffSchemas(originalSchema, updatedSchema, { skipInitialSchemaValidation = false, skipRecreateValidation = false, } = {}) {
|
|
15
|
+
if (!skipInitialSchemaValidation) {
|
|
16
|
+
const originalErrors = schema_utils_1.SchemaValidator.validate(originalSchema);
|
|
17
|
+
if (originalErrors.length > 0) {
|
|
18
|
+
throw new InvalidSchemaException('original schema is not valid', originalErrors);
|
|
19
|
+
}
|
|
17
20
|
}
|
|
18
21
|
const updatedErrors = schema_utils_1.SchemaValidator.validate(updatedSchema);
|
|
19
22
|
if (updatedErrors.length > 0) {
|
|
20
23
|
throw new InvalidSchemaException('updated schema is not valid', updatedErrors);
|
|
21
24
|
}
|
|
22
25
|
const differs = [
|
|
26
|
+
new settings_1.UpdateSettingsDiffer(),
|
|
23
27
|
new modifications_1.ConvertOneToManyRelationDiffer(),
|
|
24
28
|
new modifications_1.ConvertOneHasManyToManyHasManyRelationDiffer(),
|
|
25
29
|
new modifications_1.RemoveUniqueConstraintDiffer(),
|
|
@@ -45,8 +49,8 @@ class SchemaDiffer {
|
|
|
45
49
|
new differs_1.RemoveChangedFieldDiffer(it => (0, schema_utils_1.isRelation)(it) && (0, schema_utils_1.isInverseRelation)(it)),
|
|
46
50
|
new modifications_1.CreateEntityDiffer(),
|
|
47
51
|
new modifications_1.CreateColumnDiffer(),
|
|
48
|
-
new modifications_1.CreateViewDiffer(),
|
|
49
52
|
new modifications_1.CreateRelationDiffer(),
|
|
53
|
+
new modifications_1.CreateViewDiffer(),
|
|
50
54
|
new modifications_1.CreateRelationInverseSideDiffer(),
|
|
51
55
|
new modifications_1.CreateUniqueConstraintDiffer(),
|
|
52
56
|
new indexes_1.CreateIndexDiffer(),
|
|
@@ -61,8 +65,9 @@ class SchemaDiffer {
|
|
|
61
65
|
appliedDiffsSchema = this.schemaMigrator.applyModifications(appliedDiffsSchema, differDiffs, modifications_1.VERSION_LATEST);
|
|
62
66
|
diffs.push(...differDiffs);
|
|
63
67
|
}
|
|
64
|
-
if (
|
|
65
|
-
const
|
|
68
|
+
if (!skipRecreateValidation) {
|
|
69
|
+
const { meta, ...appliedDiffsSchema2 } = appliedDiffsSchema;
|
|
70
|
+
const errors = (0, schema_utils_1.deepCompare)(updatedSchema, appliedDiffsSchema2, []);
|
|
66
71
|
if (errors.length === 0) {
|
|
67
72
|
return diffs;
|
|
68
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaDiffer.js","sourceRoot":"","sources":["../../src/SchemaDiffer.ts"],"names":[],"mappings":";;;AACA,0DAOgC;AAGhC,6CAAsD;AACtD,mDA8BwB;AACxB,qDAAoH;AACpH,qDAA8E;AAE9E,MAAa,YAAY;IACxB,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D,WAAW,CAAC,cAAsB,EAAE,aAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"SchemaDiffer.js","sourceRoot":"","sources":["../../src/SchemaDiffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Schema } from '@contember/schema';
|
|
2
2
|
import { ModificationHandlerFactory } from './modifications';
|
|
3
3
|
import { Migration } from './Migration';
|
|
4
|
+
import { SchemaWithMeta } from './modifications/utils/schemaMeta';
|
|
4
5
|
export declare class SchemaMigrator {
|
|
5
6
|
private readonly modificationHandlerFactory;
|
|
6
7
|
constructor(modificationHandlerFactory: ModificationHandlerFactory);
|
|
7
|
-
applyModifications(schema: Schema, diff: readonly Migration.Modification[], formatVersion: number):
|
|
8
|
+
applyModifications(schema: Schema, diff: readonly Migration.Modification[], formatVersion: number): SchemaWithMeta;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=SchemaMigrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaMigrator.d.ts","sourceRoot":"","sources":["../../src/SchemaMigrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"SchemaMigrator.d.ts","sourceRoot":"","sources":["../../src/SchemaMigrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEjE,qBAAa,cAAc;IACd,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAA1B,0BAA0B,EAAE,0BAA0B;IAE5E,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,cAAc;CAWzH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaMigrator.js","sourceRoot":"","sources":["../../src/SchemaMigrator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"SchemaMigrator.js","sourceRoot":"","sources":["../../src/SchemaMigrator.ts"],"names":[],"mappings":";;;AAKA,MAAa,cAAc;IAC1B,YAA6B,0BAAsD;QAAtD,+BAA0B,GAA1B,0BAA0B,CAA4B;IAAG,CAAC;IAEhF,kBAAkB,CAAC,MAAc,EAAE,IAAuC,EAAE,aAAqB;QACvG,KAAK,MAAM,YAAY,IAAI,IAAI,EAAE;YAChC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,YAAY,CAAA;YACpD,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBACtF,aAAa;gBACb,YAAY,EAAE,QAAQ,EAAE,qBAAqB;aAC7C,CAAC,CAAA;YACF,MAAM,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;SAC3D;QACD,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AAdD,wCAcC"}
|
|
@@ -2,6 +2,7 @@ import { MigrationBuilder } from '@contember/database-migrations';
|
|
|
2
2
|
import { SchemaUpdater } from './utils/schemaUpdateUtils';
|
|
3
3
|
import { Schema } from '@contember/schema';
|
|
4
4
|
import { Migration } from '../Migration';
|
|
5
|
+
import { SchemaWithMeta } from './utils/schemaMeta';
|
|
5
6
|
export interface ModificationDescription {
|
|
6
7
|
message: string;
|
|
7
8
|
isDestructive?: boolean;
|
|
@@ -21,15 +22,17 @@ export interface ModificationHandlerOptions {
|
|
|
21
22
|
systemSchema: string;
|
|
22
23
|
}
|
|
23
24
|
export interface ModificationHandlerConstructor<Data> {
|
|
24
|
-
new (data: Data, schema:
|
|
25
|
+
new (data: Data, schema: SchemaWithMeta, options: ModificationHandlerOptions): ModificationHandler<Data>;
|
|
25
26
|
}
|
|
26
|
-
export interface Differ {
|
|
27
|
-
|
|
27
|
+
export interface Differ<Data = {
|
|
28
|
+
[field: string]: any;
|
|
29
|
+
}> {
|
|
30
|
+
createDiff: (originalSchema: Schema, updatedSchema: Schema) => Migration.Modification<Data>[];
|
|
28
31
|
}
|
|
29
32
|
export interface ModificationType<Id extends String, Data> {
|
|
30
33
|
id: Id;
|
|
31
34
|
createModification: (data: Data) => Migration.Modification<Data>;
|
|
32
|
-
createHandler: (data: Data, schema:
|
|
35
|
+
createHandler: (data: Data, schema: SchemaWithMeta, options: ModificationHandlerOptions) => ModificationHandler<Data>;
|
|
33
36
|
}
|
|
34
37
|
export declare const createModificationType: <Data, Id extends string>({ handler, id }: {
|
|
35
38
|
id: Id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModificationHandler.d.ts","sourceRoot":"","sources":["../../../src/modifications/ModificationHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"ModificationHandler.d.ts","sourceRoot":"","sources":["../../../src/modifications/ModificationHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,mCAAmC,EAAE,8BAAwD,CAAA;AAC1G,oBAAY,8BAA8B,GAAG;IAAE,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAE1E,MAAM,WAAW,mBAAmB,CAAC,IAAI;IACxC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1D,gBAAgB,IAAI,aAAa,CAAA;IAEjC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,GAAG,uBAAuB,CAAA;CAC1E;AAED,MAAM,WAAW,0BAA0B;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,8BAA8B,CAAC,IAAI;IACnD,KAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;CACvG;AAED,MAAM,WAAW,MAAM,CAAC,IAAI,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE;IACtD,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAA;CAC7F;AAGD,MAAM,WAAW,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,IAAI;IACxD,EAAE,EAAE,EAAE,CAAA;IACN,kBAAkB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAChE,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,0BAA0B,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAA;CACrH;AAED,eAAO,MAAM,sBAAsB;;;gCASlC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModificationHandler.js","sourceRoot":"","sources":["../../../src/modifications/ModificationHandler.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ModificationHandler.js","sourceRoot":"","sources":["../../../src/modifications/ModificationHandler.ts"],"names":[],"mappings":";;;AAYa,QAAA,mCAAmC,GAAmC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;AA+BnG,MAAM,sBAAsB,GAAG,CAA0B,EAAE,OAAO,EAAE,EAAE,EAG5E,EAA8B,EAAE;IAChC,OAAO;QACN,EAAE;QACF,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;QAC3D,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;KAC5E,CAAA;AACF,CAAC,CAAA;AATY,QAAA,sBAAsB,0BASlC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Schema } from '@contember/schema';
|
|
2
1
|
import { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler';
|
|
2
|
+
import { SchemaWithMeta } from './utils/schemaMeta';
|
|
3
3
|
declare class ModificationHandlerFactory {
|
|
4
4
|
private readonly map;
|
|
5
5
|
constructor(map: Record<string, ModificationType<string, any>>);
|
|
6
|
-
create<D>(name: string, data: D, schema:
|
|
6
|
+
create<D>(name: string, data: D, schema: SchemaWithMeta, options: ModificationHandlerOptions): ModificationHandler<D>;
|
|
7
7
|
}
|
|
8
8
|
declare namespace ModificationHandlerFactory {
|
|
9
9
|
type HandlerMap<D> = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModificationHandlerFactory.d.ts","sourceRoot":"","sources":["../../../src/modifications/ModificationHandlerFactory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModificationHandlerFactory.d.ts","sourceRoot":"","sources":["../../../src/modifications/ModificationHandlerFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AA8BzG,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAInD,cAAM,0BAA0B;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAExE,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAAC,CAAC,CAAC;CAM5H;AAED,kBAAU,0BAA0B,CAAC;IACpC,KAAK,UAAU,CAAC,CAAC,IAAI;QAAE,CAAC,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;KAAE,CAAA;IAwChF,MAAM,CAAC,MAAM,iBAAiB,EAAE,UAAU,CAAC,GAAG,CAAuD,CAAA;;CACrG;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAA"}
|
|
@@ -11,6 +11,7 @@ const fields_1 = require("./fields");
|
|
|
11
11
|
const relations_1 = require("./relations");
|
|
12
12
|
const validation_1 = require("./validation");
|
|
13
13
|
const indexes_1 = require("./indexes");
|
|
14
|
+
const settings_1 = require("./settings");
|
|
14
15
|
class ModificationHandlerFactory {
|
|
15
16
|
constructor(map) {
|
|
16
17
|
this.map = map;
|
|
@@ -25,6 +26,7 @@ class ModificationHandlerFactory {
|
|
|
25
26
|
exports.ModificationHandlerFactory = ModificationHandlerFactory;
|
|
26
27
|
(function (ModificationHandlerFactory) {
|
|
27
28
|
const handlers = [
|
|
29
|
+
settings_1.updateSettingsModification,
|
|
28
30
|
acl_1.updateAclSchemaModification,
|
|
29
31
|
acl_1.patchAclSchemaModification,
|
|
30
32
|
columns_1.createColumnModification,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModificationHandlerFactory.js","sourceRoot":"","sources":["../../../src/modifications/ModificationHandlerFactory.ts"],"names":[],"mappings":";;;AAEA,+BAA+E;AAC/E,uCAAsH;AACtH,+CAAsG;AACtG,yCAKmB;AACnB,8EAA0E;AAC1E,mCAIgB;AAChB,qCAA+E;AAC/E,2CAUoB;AACpB,6CAAoG;AACpG,uCAA4E;
|
|
1
|
+
{"version":3,"file":"ModificationHandlerFactory.js","sourceRoot":"","sources":["../../../src/modifications/ModificationHandlerFactory.ts"],"names":[],"mappings":";;;AAEA,+BAA+E;AAC/E,uCAAsH;AACtH,+CAAsG;AACtG,yCAKmB;AACnB,8EAA0E;AAC1E,mCAIgB;AAChB,qCAA+E;AAC/E,2CAUoB;AACpB,6CAAoG;AACpG,uCAA4E;AAE5E,yCAAuD;AAGvD,MAAM,0BAA0B;IAC/B,YAA6B,GAAkD;QAAlD,QAAG,GAAH,GAAG,CAA+C;IAAG,CAAC;IAE5E,MAAM,CAAI,IAAY,EAAE,IAAO,EAAE,MAAsB,EAAE,OAAmC;QAClG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAA;SAC7D;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;CACD;AA8CQ,gEAA0B;AA5CnC,WAAU,0BAA0B;IAGnC,MAAM,QAAQ,GAAG;QAChB,qCAA0B;QAC1B,iCAA2B;QAC3B,gCAA0B;QAC1B,kCAAwB;QACxB,4CAAkC;QAClC,sCAA4B;QAC5B,gDAAkC;QAClC,gDAAkC;QAClC,iCAAuB;QACvB,iCAAuB;QACvB,mCAAwB;QACxB,mCAAwB;QACxB,uCAA4B;QAC5B,4CAAiC;QACjC,+CAAsB;QACtB,iCAAsB;QACtB,8BAAsB;QACtB,8BAAsB;QACtB,8BAAsB;QACtB,gCAAuB;QACvB,oCAA2B;QAC3B,iDAAqC;QACrC,sCAA0B;QAC1B,8CAAkC;QAClC,6CAAiC;QACjC,2CAA+B;QAC/B,4CAAgC;QAChC,2CAA+B;QAC/B,4CAAgC;QAChC,+CAAkC;QAClC,8CAAiC;QACjC,gDAAoC;QACpC,qCAA0B;QAC1B,8CAAkC;QAClC,8DAAkD;KAClD,CAAA;IAEY,4CAAiB,GAAoB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACtG,CAAC,EA1CS,0BAA0B,KAA1B,0BAA0B,QA0CnC;AAEQ,gEAA0B"}
|
|
@@ -23,8 +23,6 @@ export interface CreateColumnModificationData {
|
|
|
23
23
|
}
|
|
24
24
|
export declare const createColumnModification: import("../ModificationHandler").ModificationType<"createColumn", CreateColumnModificationData>;
|
|
25
25
|
export declare class CreateColumnDiffer implements Differ {
|
|
26
|
-
createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<
|
|
27
|
-
[field: string]: any;
|
|
28
|
-
}>[];
|
|
26
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<CreateColumnModificationData>[];
|
|
29
27
|
}
|
|
30
28
|
//# sourceMappingURL=CreateColumnModification.d.ts.map
|
|
@@ -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;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAY,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AAC/F,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"CreateColumnModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAY,aAAa,EAA6B,MAAM,4BAA4B,CAAA;AAC/F,OAAO,EAA0B,MAAM,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAO5F,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;IAsC1C,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,GAAG,CAAA;IACf,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"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CreateColumnDiffer = exports.createColumnModification = exports.CreateColumnModificationHandler = void 0;
|
|
4
4
|
const database_migrations_1 = require("@contember/database-migrations");
|
|
5
|
-
const schema_1 = require("@contember/schema");
|
|
6
5
|
const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
|
|
7
6
|
const ModificationHandler_1 = require("../ModificationHandler");
|
|
8
7
|
const dbHelpers_1 = require("../../utils/dbHelpers");
|
|
9
8
|
const schema_utils_1 = require("@contember/schema-utils");
|
|
10
9
|
const exceptions_1 = require("../../exceptions");
|
|
11
10
|
const diffUtils_1 = require("../utils/diffUtils");
|
|
11
|
+
const columnUtils_1 = require("../utils/columnUtils");
|
|
12
12
|
class CreateColumnModificationHandler {
|
|
13
13
|
constructor(data, schema) {
|
|
14
14
|
this.data = data;
|
|
@@ -23,7 +23,7 @@ class CreateColumnModificationHandler {
|
|
|
23
23
|
const hasSeed = this.data.fillValue !== undefined || this.data.copyValue !== undefined;
|
|
24
24
|
builder.addColumn(entity.tableName, {
|
|
25
25
|
[column.columnName]: {
|
|
26
|
-
type:
|
|
26
|
+
type: (0, columnUtils_1.getColumnSqlType)(column),
|
|
27
27
|
notNull: !column.nullable && !hasSeed,
|
|
28
28
|
sequenceGenerated: column.sequence,
|
|
29
29
|
},
|
|
@@ -36,7 +36,7 @@ class CreateColumnModificationHandler {
|
|
|
36
36
|
else if (this.data.copyValue !== undefined) {
|
|
37
37
|
const copyFrom = (0, schema_utils_1.getColumnName)(this.schema.model, entity, this.data.copyValue);
|
|
38
38
|
builder.sql(`UPDATE ${(0, dbHelpers_1.wrapIdentifier)(entity.tableName)}
|
|
39
|
-
SET ${(0, dbHelpers_1.wrapIdentifier)(column.columnName)} = ${(0, dbHelpers_1.wrapIdentifier)(copyFrom)}`);
|
|
39
|
+
SET ${(0, dbHelpers_1.wrapIdentifier)(column.columnName)} = ${(0, dbHelpers_1.wrapIdentifier)(copyFrom)}::${(0, columnUtils_1.getColumnSqlType)(column)}`);
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
42
|
throw new exceptions_1.ImplementationException();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateColumnModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":";;;AAAA,wEAA8E;
|
|
1
|
+
{"version":3,"file":"CreateColumnModification.js","sourceRoot":"","sources":["../../../../src/modifications/columns/CreateColumnModification.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export declare class UpdateColumnDefinitionModificationHandler implements Modifi
|
|
|
16
16
|
declare type SequenceDefinitionAlter = Model.AnyColumn['sequence'] & {
|
|
17
17
|
restart?: boolean;
|
|
18
18
|
};
|
|
19
|
-
declare type ColumnDefinitionAlter = Model.AnyColumn & {
|
|
19
|
+
declare type ColumnDefinitionAlter = Omit<Model.AnyColumn, 'sequence' | 'columnName' | 'name'> & {
|
|
20
20
|
sequence?: SequenceDefinitionAlter;
|
|
21
21
|
};
|
|
22
22
|
export interface UpdateColumnDefinitionModificationData {
|
|
@@ -25,10 +25,8 @@ export interface UpdateColumnDefinitionModificationData {
|
|
|
25
25
|
definition: ColumnDefinitionAlter;
|
|
26
26
|
}
|
|
27
27
|
export declare const updateColumnDefinitionModification: import("../ModificationHandler").ModificationType<"updateColumnDefinition", UpdateColumnDefinitionModificationData>;
|
|
28
|
-
export declare class UpdateColumnDefinitionDiffer implements Differ {
|
|
29
|
-
createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<
|
|
30
|
-
[field: string]: any;
|
|
31
|
-
}>[];
|
|
28
|
+
export declare class UpdateColumnDefinitionDiffer implements Differ<UpdateColumnDefinitionModificationData> {
|
|
29
|
+
createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<UpdateColumnDefinitionModificationData>[];
|
|
32
30
|
}
|
|
33
31
|
export {};
|
|
34
32
|
//# sourceMappingURL=UpdateColumnDefinitionModification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateColumnDefinitionModification.d.ts","sourceRoot":"","sources":["../../../../src/modifications/columns/UpdateColumnDefinitionModification.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,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;IA0C1C,gBAAgB,IAAI,aAAa;IAexC,QAAQ;;;;CAUR;AAED,aAAK,uBAAuB,GACzB,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAC3B;IACD,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAEF,aAAK,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;CACjC;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"}
|
|
@@ -4,12 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.UpdateColumnDefinitionDiffer = exports.updateColumnDefinitionModification = exports.UpdateColumnDefinitionModificationHandler = void 0;
|
|
7
|
-
const
|
|
7
|
+
const database_migrations_1 = require("@contember/database-migrations");
|
|
8
8
|
const schemaUpdateUtils_1 = require("../utils/schemaUpdateUtils");
|
|
9
9
|
const ModificationHandler_1 = require("../ModificationHandler");
|
|
10
10
|
const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
11
11
|
const diffUtils_1 = require("../utils/diffUtils");
|
|
12
12
|
const database_1 = require("@contember/database");
|
|
13
|
+
const columnUtils_1 = require("../utils/columnUtils");
|
|
13
14
|
class UpdateColumnDefinitionModificationHandler {
|
|
14
15
|
constructor(data, schema) {
|
|
15
16
|
this.data = data;
|
|
@@ -20,33 +21,36 @@ class UpdateColumnDefinitionModificationHandler {
|
|
|
20
21
|
if (entity.view) {
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
const oldColumn = entity.fields[this.data.fieldName];
|
|
25
|
+
const newColumn = this.data.definition;
|
|
26
|
+
const hasNewSequence = !oldColumn.sequence && newColumn.sequence;
|
|
27
|
+
const hasNewType = newColumn.columnType !== oldColumn.columnType;
|
|
28
|
+
const columnType = (0, columnUtils_1.getColumnSqlType)(newColumn);
|
|
29
|
+
const usingCast = `${(0, database_1.wrapIdentifier)(oldColumn.columnName)}::${columnType}`;
|
|
30
|
+
builder.alterColumn(entity.tableName, oldColumn.columnName, {
|
|
31
|
+
type: hasNewSequence || hasNewType ? columnType : undefined,
|
|
32
|
+
notNull: oldColumn.nullable !== newColumn.nullable ? !newColumn.nullable : undefined,
|
|
33
|
+
using: hasNewSequence
|
|
34
|
+
? `COALESCE(${usingCast}, nextval(PG_GET_SERIAL_SEQUENCE(${(0, database_migrations_1.escapeValue)(entity.tableName)}, ${(0, database_migrations_1.escapeValue)(oldColumn.columnName)})))`
|
|
35
|
+
: hasNewType
|
|
36
|
+
? usingCast
|
|
37
|
+
: undefined,
|
|
38
|
+
sequenceGenerated: oldColumn.sequence && !newColumn.sequence ? false : (!oldColumn.sequence ? newColumn.sequence : undefined),
|
|
35
39
|
});
|
|
36
40
|
const seqAlter = [];
|
|
37
|
-
if (
|
|
38
|
-
if (
|
|
39
|
-
seqAlter.push(`SET GENERATED ${
|
|
41
|
+
if (oldColumn.sequence && newColumn.sequence) {
|
|
42
|
+
if (oldColumn.sequence.precedence !== newColumn.sequence.precedence) {
|
|
43
|
+
seqAlter.push(`SET GENERATED ${newColumn.sequence.precedence}`);
|
|
40
44
|
}
|
|
41
|
-
if (
|
|
42
|
-
seqAlter.push(`SET START WITH ${
|
|
45
|
+
if (oldColumn.sequence.start !== newColumn.sequence.start && typeof newColumn.sequence.start == 'number') {
|
|
46
|
+
seqAlter.push(`SET START WITH ${newColumn.sequence.start}`);
|
|
43
47
|
}
|
|
44
|
-
if (
|
|
48
|
+
if (newColumn.sequence.restart) {
|
|
45
49
|
seqAlter.push('RESTART');
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
52
|
if (seqAlter.length > 0) {
|
|
49
|
-
builder.sql(`ALTER TABLE ${(0, database_1.wrapIdentifier)(entity.tableName)} ALTER ${(0, database_1.wrapIdentifier)(
|
|
53
|
+
builder.sql(`ALTER TABLE ${(0, database_1.wrapIdentifier)(entity.tableName)} ALTER ${(0, database_1.wrapIdentifier)(oldColumn.columnName)} ${seqAlter.join(' ')}`);
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
56
|
getSchemaUpdater() {
|