@contember/engine-system-api 2.1.0-beta.2 → 2.2.0-alpha.1
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/CLAUDE.md +16 -2
- package/dist/development/src/SystemContainer.cjs.map +1 -1
- package/dist/development/src/SystemContainer.js.map +1 -1
- package/dist/development/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
- package/dist/development/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
- package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
- package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
- package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
- package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
- package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
- package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
- package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
- package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
- package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
- package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
- package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
- package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
- package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
- package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
- package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -1
- package/dist/development/src/migrations/2024-06-28-153001-schema-init.js.map +1 -1
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -1
- package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -1
- package/dist/development/src/migrations/2026-06-01-120000-event-truncate.cjs +13 -0
- package/dist/development/src/migrations/2026-06-01-120000-event-truncate.cjs.map +1 -0
- package/dist/development/src/migrations/2026-06-01-120000-event-truncate.js +14 -0
- package/dist/development/src/migrations/2026-06-01-120000-event-truncate.js.map +1 -0
- package/dist/development/src/migrations/runner.cjs +3 -1
- package/dist/development/src/migrations/runner.cjs.map +1 -1
- package/dist/development/src/migrations/runner.js +3 -1
- package/dist/development/src/migrations/runner.js.map +1 -1
- package/dist/development/src/migrations/snapshot-factory.cjs.map +1 -1
- package/dist/development/src/migrations/snapshot-factory.js.map +1 -1
- package/dist/development/src/migrations/snapshot.cjs +5 -4
- package/dist/development/src/migrations/snapshot.cjs.map +1 -1
- package/dist/development/src/migrations/snapshot.js +5 -4
- package/dist/development/src/migrations/snapshot.js.map +1 -1
- package/dist/development/src/model/ProjectInitializer.cjs.map +1 -1
- package/dist/development/src/model/ProjectInitializer.js.map +1 -1
- package/dist/development/src/model/ProjectTruncateExecutor.cjs +3 -3
- package/dist/development/src/model/ProjectTruncateExecutor.cjs.map +1 -1
- package/dist/development/src/model/ProjectTruncateExecutor.js +3 -3
- package/dist/development/src/model/ProjectTruncateExecutor.js.map +1 -1
- package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
- package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -1
- package/dist/development/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
- package/dist/development/src/model/authorization/StagePermissionsFactory.js.map +1 -1
- package/dist/development/src/model/authorization/StageScope.cjs.map +1 -1
- package/dist/development/src/model/authorization/StageScope.js.map +1 -1
- package/dist/development/src/model/commands/CommandBus.cjs.map +1 -1
- package/dist/development/src/model/commands/CommandBus.js.map +1 -1
- package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs +25 -2
- package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/events/TruncateEventsCommand.js +26 -3
- package/dist/development/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
- package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
- package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
- package/dist/development/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
- package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/schema/SaveSchemaCommand.js.map +1 -1
- package/dist/development/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
- package/dist/development/src/model/commands/stages/CreateStageCommand.js.map +1 -1
- package/dist/development/src/model/database/DatabaseContext.cjs.map +1 -1
- package/dist/development/src/model/database/DatabaseContext.js.map +1 -1
- package/dist/development/src/model/events/EventResponseBuilder.cjs +6 -1
- package/dist/development/src/model/events/EventResponseBuilder.cjs.map +1 -1
- package/dist/development/src/model/events/EventResponseBuilder.js +6 -1
- package/dist/development/src/model/events/EventResponseBuilder.js.map +1 -1
- package/dist/development/src/model/events/EventResponseHelper.cjs.map +1 -1
- package/dist/development/src/model/events/EventResponseHelper.js.map +1 -1
- package/dist/development/src/model/events/identityUtils.cjs.map +1 -1
- package/dist/development/src/model/events/identityUtils.js.map +1 -1
- package/dist/development/src/model/events/types.cjs +17 -0
- package/dist/development/src/model/events/types.cjs.map +1 -1
- package/dist/development/src/model/events/types.js +17 -0
- package/dist/development/src/model/events/types.js.map +1 -1
- package/dist/development/src/model/helpers/stageHelpers.cjs.map +1 -1
- package/dist/development/src/model/helpers/stageHelpers.js.map +1 -1
- package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
- package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
- package/dist/development/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
- package/dist/development/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
- package/dist/development/src/model/migrations/MigrationAlterer.cjs.map +1 -1
- package/dist/development/src/model/migrations/MigrationAlterer.js.map +1 -1
- package/dist/development/src/model/migrations/ProjectMigrator.cjs +94 -5
- package/dist/development/src/model/migrations/ProjectMigrator.cjs.map +1 -1
- package/dist/development/src/model/migrations/ProjectMigrator.js +96 -7
- package/dist/development/src/model/migrations/ProjectMigrator.js.map +1 -1
- package/dist/development/src/model/migrations/SchemaProvider.cjs.map +1 -1
- package/dist/development/src/model/migrations/SchemaProvider.js.map +1 -1
- package/dist/development/src/model/queries/events/EventQueryHelpers.cjs +16 -8
- package/dist/development/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
- package/dist/development/src/model/queries/events/EventQueryHelpers.js +17 -9
- package/dist/development/src/model/queries/events/EventQueryHelpers.js.map +1 -1
- package/dist/development/src/model/queries/events/EventsQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/events/EventsQuery.js.map +1 -1
- package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs.map +1 -1
- package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -1
- package/dist/development/src/model/queries/schema/SchemaQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/schema/SchemaQuery.js.map +1 -1
- package/dist/development/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
- package/dist/development/src/model/queries/stages/StageQueryFactory.cjs.map +1 -1
- package/dist/development/src/model/queries/stages/StageQueryFactory.js.map +1 -1
- package/dist/development/src/model/queries/stages/StagesQuery.cjs.map +1 -1
- package/dist/development/src/model/queries/stages/StagesQuery.js.map +1 -1
- package/dist/development/src/model/stages/StageCreator.cjs.map +1 -1
- package/dist/development/src/model/stages/StageCreator.js.map +1 -1
- package/dist/development/src/resolvers/ResolverFactory.cjs +4 -1
- package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/ResolverFactory.js +4 -1
- package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
- package/dist/development/src/resolvers/SystemResolverContext.cjs.map +1 -1
- package/dist/development/src/resolvers/SystemResolverContext.js.map +1 -1
- package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs +49 -1
- package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js +49 -1
- package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs +1 -1
- package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js +1 -1
- package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/EventsQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/SchemaQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/query/StagesQueryResolver.js.map +1 -1
- package/dist/development/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
- package/dist/development/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
- package/dist/development/src/resolvers/types/OldValuesHelpers.js.map +1 -1
- package/dist/development/src/schema/dev.graphql.cjs +1 -1
- package/dist/development/src/schema/dev.graphql.cjs.map +1 -1
- package/dist/development/src/schema/dev.graphql.js +1 -1
- package/dist/development/src/schema/dev.graphql.js.map +1 -1
- package/dist/development/src/schema/system.graphql.cjs +39 -3
- package/dist/development/src/schema/system.graphql.cjs.map +1 -1
- package/dist/development/src/schema/system.graphql.js +39 -3
- package/dist/development/src/schema/system.graphql.js.map +1 -1
- package/dist/development/src/schema/types.cjs +2 -0
- package/dist/development/src/schema/types.cjs.map +1 -1
- package/dist/development/src/schema/types.js +2 -0
- package/dist/development/src/schema/types.js.map +1 -1
- package/dist/development/src/utils/batchQuery.cjs.map +1 -1
- package/dist/development/src/utils/batchQuery.js.map +1 -1
- package/dist/production/src/SystemContainer.cjs.map +1 -1
- package/dist/production/src/SystemContainer.js.map +1 -1
- package/dist/production/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
- package/dist/production/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
- package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
- package/dist/production/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
- package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
- package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
- package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
- package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
- package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
- package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
- package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
- package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
- package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
- package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
- package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
- package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
- package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -1
- package/dist/production/src/migrations/2024-06-28-153001-schema-init.js.map +1 -1
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -1
- package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -1
- package/dist/production/src/migrations/2026-06-01-120000-event-truncate.cjs +13 -0
- package/dist/production/src/migrations/2026-06-01-120000-event-truncate.cjs.map +1 -0
- package/dist/production/src/migrations/2026-06-01-120000-event-truncate.js +14 -0
- package/dist/production/src/migrations/2026-06-01-120000-event-truncate.js.map +1 -0
- package/dist/production/src/migrations/runner.cjs +3 -1
- package/dist/production/src/migrations/runner.cjs.map +1 -1
- package/dist/production/src/migrations/runner.js +3 -1
- package/dist/production/src/migrations/runner.js.map +1 -1
- package/dist/production/src/migrations/snapshot-factory.cjs.map +1 -1
- package/dist/production/src/migrations/snapshot-factory.js.map +1 -1
- package/dist/production/src/migrations/snapshot.cjs +5 -4
- package/dist/production/src/migrations/snapshot.cjs.map +1 -1
- package/dist/production/src/migrations/snapshot.js +5 -4
- package/dist/production/src/migrations/snapshot.js.map +1 -1
- package/dist/production/src/model/ProjectInitializer.cjs.map +1 -1
- package/dist/production/src/model/ProjectInitializer.js.map +1 -1
- package/dist/production/src/model/ProjectTruncateExecutor.cjs +3 -3
- package/dist/production/src/model/ProjectTruncateExecutor.cjs.map +1 -1
- package/dist/production/src/model/ProjectTruncateExecutor.js +3 -3
- package/dist/production/src/model/ProjectTruncateExecutor.js.map +1 -1
- package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
- package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -1
- package/dist/production/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
- package/dist/production/src/model/authorization/StagePermissionsFactory.js.map +1 -1
- package/dist/production/src/model/authorization/StageScope.cjs.map +1 -1
- package/dist/production/src/model/authorization/StageScope.js.map +1 -1
- package/dist/production/src/model/commands/CommandBus.cjs.map +1 -1
- package/dist/production/src/model/commands/CommandBus.js.map +1 -1
- package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs +25 -2
- package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/events/TruncateEventsCommand.js +26 -3
- package/dist/production/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
- package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
- package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
- package/dist/production/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
- package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/schema/SaveSchemaCommand.js.map +1 -1
- package/dist/production/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
- package/dist/production/src/model/commands/stages/CreateStageCommand.js.map +1 -1
- package/dist/production/src/model/database/DatabaseContext.cjs.map +1 -1
- package/dist/production/src/model/database/DatabaseContext.js.map +1 -1
- package/dist/production/src/model/events/EventResponseBuilder.cjs +6 -1
- package/dist/production/src/model/events/EventResponseBuilder.cjs.map +1 -1
- package/dist/production/src/model/events/EventResponseBuilder.js +6 -1
- package/dist/production/src/model/events/EventResponseBuilder.js.map +1 -1
- package/dist/production/src/model/events/EventResponseHelper.cjs.map +1 -1
- package/dist/production/src/model/events/EventResponseHelper.js.map +1 -1
- package/dist/production/src/model/events/identityUtils.cjs.map +1 -1
- package/dist/production/src/model/events/identityUtils.js.map +1 -1
- package/dist/production/src/model/events/types.cjs +17 -0
- package/dist/production/src/model/events/types.cjs.map +1 -1
- package/dist/production/src/model/events/types.js +17 -0
- package/dist/production/src/model/events/types.js.map +1 -1
- package/dist/production/src/model/helpers/stageHelpers.cjs.map +1 -1
- package/dist/production/src/model/helpers/stageHelpers.js.map +1 -1
- package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
- package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
- package/dist/production/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
- package/dist/production/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
- package/dist/production/src/model/migrations/MigrationAlterer.cjs.map +1 -1
- package/dist/production/src/model/migrations/MigrationAlterer.js.map +1 -1
- package/dist/production/src/model/migrations/ProjectMigrator.cjs +94 -5
- package/dist/production/src/model/migrations/ProjectMigrator.cjs.map +1 -1
- package/dist/production/src/model/migrations/ProjectMigrator.js +96 -7
- package/dist/production/src/model/migrations/ProjectMigrator.js.map +1 -1
- package/dist/production/src/model/migrations/SchemaProvider.cjs.map +1 -1
- package/dist/production/src/model/migrations/SchemaProvider.js.map +1 -1
- package/dist/production/src/model/queries/events/EventQueryHelpers.cjs +16 -8
- package/dist/production/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
- package/dist/production/src/model/queries/events/EventQueryHelpers.js +17 -9
- package/dist/production/src/model/queries/events/EventQueryHelpers.js.map +1 -1
- package/dist/production/src/model/queries/events/EventsQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/events/EventsQuery.js.map +1 -1
- package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs.map +1 -1
- package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -1
- package/dist/production/src/model/queries/schema/SchemaQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/schema/SchemaQuery.js.map +1 -1
- package/dist/production/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
- package/dist/production/src/model/queries/stages/StageQueryFactory.cjs.map +1 -1
- package/dist/production/src/model/queries/stages/StageQueryFactory.js.map +1 -1
- package/dist/production/src/model/queries/stages/StagesQuery.cjs.map +1 -1
- package/dist/production/src/model/queries/stages/StagesQuery.js.map +1 -1
- package/dist/production/src/model/stages/StageCreator.cjs.map +1 -1
- package/dist/production/src/model/stages/StageCreator.js.map +1 -1
- package/dist/production/src/resolvers/ResolverFactory.cjs +4 -1
- package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/ResolverFactory.js +4 -1
- package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
- package/dist/production/src/resolvers/SystemResolverContext.cjs.map +1 -1
- package/dist/production/src/resolvers/SystemResolverContext.js.map +1 -1
- package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs +49 -1
- package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js +49 -1
- package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs +1 -1
- package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js +1 -1
- package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/EventsQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/SchemaQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/query/StagesQueryResolver.js.map +1 -1
- package/dist/production/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
- package/dist/production/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
- package/dist/production/src/resolvers/types/OldValuesHelpers.js.map +1 -1
- package/dist/production/src/schema/dev.graphql.cjs +1 -1
- package/dist/production/src/schema/dev.graphql.cjs.map +1 -1
- package/dist/production/src/schema/dev.graphql.js +1 -1
- package/dist/production/src/schema/dev.graphql.js.map +1 -1
- package/dist/production/src/schema/system.graphql.cjs +39 -3
- package/dist/production/src/schema/system.graphql.cjs.map +1 -1
- package/dist/production/src/schema/system.graphql.js +39 -3
- package/dist/production/src/schema/system.graphql.js.map +1 -1
- package/dist/production/src/schema/types.cjs +2 -0
- package/dist/production/src/schema/types.cjs.map +1 -1
- package/dist/production/src/schema/types.js +2 -0
- package/dist/production/src/schema/types.js.map +1 -1
- package/dist/production/src/utils/batchQuery.cjs.map +1 -1
- package/dist/production/src/utils/batchQuery.js.map +1 -1
- package/dist/tests/cases/unit/projectMigratorSchemaState.test.d.ts +2 -0
- package/dist/tests/cases/unit/projectMigratorSchemaState.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/truncateEventsCommand.test.d.ts +2 -0
- package/dist/tests/cases/unit/truncateEventsCommand.test.d.ts.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/SystemContainer.d.ts +6 -6
- package/dist/types/SystemContainer.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/migrations/2020-03-27-130000-project-migrations.d.ts +1 -1
- package/dist/types/migrations/2020-03-27-130000-project-migrations.d.ts.map +1 -1
- package/dist/types/migrations/2020-05-06-150000-composed-primary.d.ts +1 -1
- package/dist/types/migrations/2020-05-06-150000-composed-primary.d.ts.map +1 -1
- package/dist/types/migrations/2020-06-01-103000-event-trigger-perf.d.ts +1 -1
- package/dist/types/migrations/2020-06-01-103000-event-trigger-perf.d.ts.map +1 -1
- package/dist/types/migrations/2021-05-07-155800-event-log-rework.d.ts +1 -1
- package/dist/types/migrations/2021-05-07-155800-event-log-rework.d.ts.map +1 -1
- package/dist/types/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts +1 -1
- package/dist/types/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts.map +1 -1
- package/dist/types/migrations/2022-10-03-110000-table-on-delete.d.ts +1 -1
- package/dist/types/migrations/2022-10-03-110000-table-on-delete.d.ts.map +1 -1
- package/dist/types/migrations/2023-09-11-174000-fix-on-delete.d.ts +1 -1
- package/dist/types/migrations/2023-09-11-174000-fix-on-delete.d.ts.map +1 -1
- package/dist/types/migrations/2023-10-19-173000-fix-unique.d.ts +1 -1
- package/dist/types/migrations/2023-10-19-173000-fix-unique.d.ts.map +1 -1
- package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts +1 -1
- package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts.map +1 -1
- package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts +1 -1
- package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts.map +1 -1
- package/dist/types/migrations/2026-06-01-120000-event-truncate.d.ts +3 -0
- package/dist/types/migrations/2026-06-01-120000-event-truncate.d.ts.map +1 -0
- package/dist/types/migrations/index.d.ts +2 -2
- package/dist/types/migrations/index.d.ts.map +1 -1
- package/dist/types/migrations/runner.d.ts +2 -2
- package/dist/types/migrations/runner.d.ts.map +1 -1
- package/dist/types/migrations/snapshot-factory.d.ts +1 -1
- package/dist/types/migrations/snapshot-factory.d.ts.map +1 -1
- package/dist/types/migrations/snapshot.d.ts +1 -1
- package/dist/types/migrations/snapshot.d.ts.map +1 -1
- package/dist/types/migrations/types.d.ts +2 -2
- package/dist/types/migrations/types.d.ts.map +1 -1
- package/dist/types/model/ProjectInitializer.d.ts +4 -4
- package/dist/types/model/ProjectInitializer.d.ts.map +1 -1
- package/dist/types/model/ProjectTruncateExecutor.d.ts +3 -3
- package/dist/types/model/ProjectTruncateExecutor.d.ts.map +1 -1
- package/dist/types/model/authorization/StagePermissionsFactory.d.ts +1 -1
- package/dist/types/model/authorization/StagePermissionsFactory.d.ts.map +1 -1
- package/dist/types/model/authorization/StageScope.d.ts +2 -2
- package/dist/types/model/authorization/StageScope.d.ts.map +1 -1
- package/dist/types/model/authorization/index.d.ts +3 -3
- package/dist/types/model/authorization/index.d.ts.map +1 -1
- package/dist/types/model/commands/Command.d.ts +2 -2
- package/dist/types/model/commands/Command.d.ts.map +1 -1
- package/dist/types/model/commands/CommandBus.d.ts +2 -2
- package/dist/types/model/commands/CommandBus.d.ts.map +1 -1
- package/dist/types/model/commands/events/TruncateEventsCommand.d.ts +12 -3
- package/dist/types/model/commands/events/TruncateEventsCommand.d.ts.map +1 -1
- package/dist/types/model/commands/events/index.d.ts +1 -1
- package/dist/types/model/commands/events/index.d.ts.map +1 -1
- package/dist/types/model/commands/index.d.ts +5 -5
- package/dist/types/model/commands/index.d.ts.map +1 -1
- package/dist/types/model/commands/migrations/DeleteMigrationCommand.d.ts +1 -1
- package/dist/types/model/commands/migrations/DeleteMigrationCommand.d.ts.map +1 -1
- package/dist/types/model/commands/migrations/ModifyMigrationCommand.d.ts +1 -1
- package/dist/types/model/commands/migrations/ModifyMigrationCommand.d.ts.map +1 -1
- package/dist/types/model/commands/migrations/SaveMigrationCommand.d.ts +2 -2
- package/dist/types/model/commands/migrations/SaveMigrationCommand.d.ts.map +1 -1
- package/dist/types/model/commands/migrations/index.d.ts +2 -2
- package/dist/types/model/commands/migrations/index.d.ts.map +1 -1
- package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts +2 -2
- package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts.map +1 -1
- package/dist/types/model/commands/stages/CreateStageCommand.d.ts +2 -2
- package/dist/types/model/commands/stages/CreateStageCommand.d.ts.map +1 -1
- package/dist/types/model/commands/stages/TruncateStagesCommand.d.ts +1 -1
- package/dist/types/model/commands/stages/TruncateStagesCommand.d.ts.map +1 -1
- package/dist/types/model/commands/stages/index.d.ts +2 -2
- package/dist/types/model/commands/stages/index.d.ts.map +1 -1
- package/dist/types/model/database/DatabaseContext.d.ts +2 -2
- package/dist/types/model/database/DatabaseContext.d.ts.map +1 -1
- package/dist/types/model/database/index.d.ts +1 -1
- package/dist/types/model/database/index.d.ts.map +1 -1
- package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts +2 -2
- package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts.map +1 -1
- package/dist/types/model/dependencies/index.d.ts +2 -2
- package/dist/types/model/dependencies/index.d.ts.map +1 -1
- package/dist/types/model/dependencies/tenant/index.d.ts +1 -1
- package/dist/types/model/dependencies/tenant/index.d.ts.map +1 -1
- package/dist/types/model/dtos/index.d.ts +2 -2
- package/dist/types/model/dtos/index.d.ts.map +1 -1
- package/dist/types/model/events/EventResponseBuilder.d.ts +4 -4
- package/dist/types/model/events/EventResponseBuilder.d.ts.map +1 -1
- package/dist/types/model/events/EventResponseHelper.d.ts +1 -1
- package/dist/types/model/events/EventResponseHelper.d.ts.map +1 -1
- package/dist/types/model/events/identityUtils.d.ts +1 -1
- package/dist/types/model/events/identityUtils.d.ts.map +1 -1
- package/dist/types/model/events/index.d.ts +2 -2
- package/dist/types/model/events/index.d.ts.map +1 -1
- package/dist/types/model/events/types.d.ts +12 -2
- package/dist/types/model/events/types.d.ts.map +1 -1
- package/dist/types/model/helpers/index.d.ts +2 -2
- package/dist/types/model/helpers/index.d.ts.map +1 -1
- package/dist/types/model/helpers/stageHelpers.d.ts +1 -1
- package/dist/types/model/helpers/stageHelpers.d.ts.map +1 -1
- package/dist/types/model/index.d.ts +13 -13
- package/dist/types/model/index.d.ts.map +1 -1
- package/dist/types/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts +1 -1
- package/dist/types/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts.map +1 -1
- package/dist/types/model/metadata/index.d.ts +1 -1
- package/dist/types/model/metadata/index.d.ts.map +1 -1
- package/dist/types/model/migrations/ExecutedMigrationsResolver.d.ts +2 -2
- package/dist/types/model/migrations/ExecutedMigrationsResolver.d.ts.map +1 -1
- package/dist/types/model/migrations/MigrationAlterer.d.ts +3 -3
- package/dist/types/model/migrations/MigrationAlterer.d.ts.map +1 -1
- package/dist/types/model/migrations/MigrationInput.d.ts +6 -0
- package/dist/types/model/migrations/MigrationInput.d.ts.map +1 -1
- package/dist/types/model/migrations/ProjectMigrator.d.ts +28 -10
- package/dist/types/model/migrations/ProjectMigrator.d.ts.map +1 -1
- package/dist/types/model/migrations/SchemaProvider.d.ts +2 -2
- package/dist/types/model/migrations/SchemaProvider.d.ts.map +1 -1
- package/dist/types/model/migrations/index.d.ts +4 -4
- package/dist/types/model/migrations/index.d.ts.map +1 -1
- package/dist/types/model/queries/events/EventQueryHelpers.d.ts +4 -4
- package/dist/types/model/queries/events/EventQueryHelpers.d.ts.map +1 -1
- package/dist/types/model/queries/events/EventsQuery.d.ts +2 -2
- package/dist/types/model/queries/events/EventsQuery.d.ts.map +1 -1
- package/dist/types/model/queries/events/index.d.ts +3 -3
- package/dist/types/model/queries/events/index.d.ts.map +1 -1
- package/dist/types/model/queries/index.d.ts +4 -4
- package/dist/types/model/queries/index.d.ts.map +1 -1
- package/dist/types/model/queries/migrations/ExecutedMigrationByVersionQuery.d.ts +1 -1
- package/dist/types/model/queries/migrations/ExecutedMigrationByVersionQuery.d.ts.map +1 -1
- package/dist/types/model/queries/migrations/ExecutedMigrationsQuery.d.ts +1 -1
- package/dist/types/model/queries/migrations/ExecutedMigrationsQuery.d.ts.map +1 -1
- package/dist/types/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts +1 -1
- package/dist/types/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts.map +1 -1
- package/dist/types/model/queries/migrations/index.d.ts +3 -3
- package/dist/types/model/queries/migrations/index.d.ts.map +1 -1
- package/dist/types/model/queries/schema/SchemaQuery.d.ts +1 -1
- package/dist/types/model/queries/schema/SchemaQuery.d.ts.map +1 -1
- package/dist/types/model/queries/schema/index.d.ts +1 -1
- package/dist/types/model/queries/schema/index.d.ts.map +1 -1
- package/dist/types/model/queries/stages/StageBySlugQuery.d.ts +1 -1
- package/dist/types/model/queries/stages/StageBySlugQuery.d.ts.map +1 -1
- package/dist/types/model/queries/stages/StageQueryFactory.d.ts +1 -1
- package/dist/types/model/queries/stages/StageQueryFactory.d.ts.map +1 -1
- package/dist/types/model/queries/stages/StagesQuery.d.ts +1 -1
- package/dist/types/model/queries/stages/StagesQuery.d.ts.map +1 -1
- package/dist/types/model/queries/stages/index.d.ts +3 -3
- package/dist/types/model/queries/stages/index.d.ts.map +1 -1
- package/dist/types/model/stages/StageCreator.d.ts +2 -2
- package/dist/types/model/stages/StageCreator.d.ts.map +1 -1
- package/dist/types/model/stages/index.d.ts +1 -1
- package/dist/types/model/stages/index.d.ts.map +1 -1
- package/dist/types/resolvers/Resolver.d.ts +1 -1
- package/dist/types/resolvers/Resolver.d.ts.map +1 -1
- package/dist/types/resolvers/ResolverFactory.d.ts +5 -5
- package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
- package/dist/types/resolvers/SystemResolverContext.d.ts +4 -4
- package/dist/types/resolvers/SystemResolverContext.d.ts.map +1 -1
- package/dist/types/resolvers/index.d.ts +5 -5
- package/dist/types/resolvers/index.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/MigrateMutationResolver.d.ts +6 -4
- package/dist/types/resolvers/mutation/MigrateMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/MigrationAlterMutationResolver.d.ts +4 -4
- package/dist/types/resolvers/mutation/MigrationAlterMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/TruncateMutationResolver.d.ts +4 -4
- package/dist/types/resolvers/mutation/TruncateMutationResolver.d.ts.map +1 -1
- package/dist/types/resolvers/mutation/index.d.ts +3 -3
- package/dist/types/resolvers/mutation/index.d.ts.map +1 -1
- package/dist/types/resolvers/query/EventsQueryResolver.d.ts +4 -4
- package/dist/types/resolvers/query/EventsQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/ExecutedMigrationsQueryResolver.d.ts +3 -3
- package/dist/types/resolvers/query/ExecutedMigrationsQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/SchemaQueryResolver.d.ts +2 -2
- package/dist/types/resolvers/query/SchemaQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/StagesQueryResolver.d.ts +3 -3
- package/dist/types/resolvers/query/StagesQueryResolver.d.ts.map +1 -1
- package/dist/types/resolvers/query/index.d.ts +3 -3
- package/dist/types/resolvers/query/index.d.ts.map +1 -1
- package/dist/types/resolvers/types/EventOldValuesResolver.d.ts +2 -2
- package/dist/types/resolvers/types/EventOldValuesResolver.d.ts.map +1 -1
- package/dist/types/resolvers/types/OldValuesHelpers.d.ts +2 -2
- package/dist/types/resolvers/types/OldValuesHelpers.d.ts.map +1 -1
- package/dist/types/resolvers/types/index.d.ts +1 -1
- package/dist/types/resolvers/types/index.d.ts.map +1 -1
- package/dist/types/schema/index.d.ts +2 -2
- package/dist/types/schema/index.d.ts.map +1 -1
- package/dist/types/schema/system.graphql.d.ts.map +1 -1
- package/dist/types/schema/types.d.ts +80 -54
- package/dist/types/schema/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/utils/index.d.ts +7 -7
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/providers.d.ts +1 -1
- package/dist/types/utils/providers.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/SystemContainer.ts +6 -6
- package/src/bin/runMigrations.ts +2 -2
- package/src/index.ts +7 -7
- package/src/migrations/2020-03-27-130000-project-migrations.ts +1 -1
- package/src/migrations/2020-05-06-150000-composed-primary.ts +2 -2
- package/src/migrations/2020-06-01-103000-event-trigger-perf.ts +2 -2
- package/src/migrations/2021-05-07-155800-event-log-rework.ts +2 -2
- package/src/migrations/2021-05-19-1232000-event-log-fix-constraint.ts +2 -2
- package/src/migrations/2022-10-03-110000-table-on-delete.ts +1 -1
- package/src/migrations/2023-09-11-174000-fix-on-delete.ts +1 -1
- package/src/migrations/2023-10-19-173000-fix-unique.ts +1 -1
- package/src/migrations/2024-06-28-153001-schema-init.ts +1 -1
- package/src/migrations/2025-03-14-110000-fix-missing-index.ts +1 -1
- package/src/migrations/2026-06-01-120000-event-truncate.ts +18 -0
- package/src/migrations/index.ts +2 -2
- package/src/migrations/runner.ts +31 -29
- package/src/migrations/snapshot-factory.ts +1 -1
- package/src/migrations/snapshot-template-start.txt +1 -1
- package/src/migrations/snapshot.ts +6 -5
- package/src/migrations/types.ts +2 -2
- package/src/model/ProjectInitializer.ts +4 -4
- package/src/model/ProjectTruncateExecutor.ts +8 -8
- package/src/model/authorization/PermissionsFactory.ts +1 -1
- package/src/model/authorization/StagePermissionsFactory.ts +2 -2
- package/src/model/authorization/StageScope.ts +3 -3
- package/src/model/authorization/index.ts +3 -3
- package/src/model/commands/Command.ts +2 -2
- package/src/model/commands/CommandBus.ts +2 -2
- package/src/model/commands/events/TruncateEventsCommand.ts +45 -5
- package/src/model/commands/events/index.ts +1 -1
- package/src/model/commands/index.ts +5 -5
- package/src/model/commands/migrations/DeleteMigrationCommand.ts +1 -1
- package/src/model/commands/migrations/ModifyMigrationCommand.ts +2 -2
- package/src/model/commands/migrations/SaveMigrationCommand.ts +2 -2
- package/src/model/commands/migrations/index.ts +2 -2
- package/src/model/commands/schema/SaveSchemaCommand.ts +2 -2
- package/src/model/commands/stages/CreateStageCommand.ts +3 -3
- package/src/model/commands/stages/TruncateStagesCommand.ts +1 -1
- package/src/model/commands/stages/index.ts +2 -2
- package/src/model/database/DatabaseContext.ts +2 -2
- package/src/model/database/index.ts +1 -1
- package/src/model/dependencies/content/ContentQueryExecutor.ts +2 -2
- package/src/model/dependencies/index.ts +2 -2
- package/src/model/dependencies/tenant/index.ts +1 -1
- package/src/model/dtos/index.ts +2 -2
- package/src/model/events/EventResponseBuilder.ts +12 -7
- package/src/model/events/EventResponseHelper.ts +1 -1
- package/src/model/events/identityUtils.ts +2 -2
- package/src/model/events/index.ts +2 -2
- package/src/model/events/types.ts +15 -1
- package/src/model/helpers/index.ts +2 -2
- package/src/model/helpers/stageHelpers.ts +1 -1
- package/src/model/index.ts +13 -13
- package/src/model/metadata/SchemaDatabaseMetadataResolverStore.ts +1 -1
- package/src/model/metadata/index.ts +1 -1
- package/src/model/migrations/ExecutedMigrationsResolver.ts +3 -3
- package/src/model/migrations/MigrationAlterer.ts +6 -6
- package/src/model/migrations/MigrationInput.ts +7 -0
- package/src/model/migrations/ProjectMigrator.ts +133 -17
- package/src/model/migrations/SchemaProvider.ts +3 -3
- package/src/model/migrations/index.ts +4 -4
- package/src/model/queries/events/EventQueryHelpers.ts +21 -13
- package/src/model/queries/events/EventsQuery.ts +3 -3
- package/src/model/queries/events/index.ts +3 -3
- package/src/model/queries/index.ts +4 -4
- package/src/model/queries/migrations/ExecutedMigrationByVersionQuery.ts +2 -2
- package/src/model/queries/migrations/ExecutedMigrationsQuery.ts +2 -2
- package/src/model/queries/migrations/ExecutedMigrationsQueryHelper.ts +1 -1
- package/src/model/queries/migrations/index.ts +3 -3
- package/src/model/queries/schema/SchemaQuery.ts +1 -1
- package/src/model/queries/schema/index.ts +1 -1
- package/src/model/queries/stages/StageBySlugQuery.ts +2 -2
- package/src/model/queries/stages/StageQueryFactory.ts +1 -1
- package/src/model/queries/stages/StagesQuery.ts +2 -2
- package/src/model/queries/stages/index.ts +3 -3
- package/src/model/stages/StageCreator.ts +4 -4
- package/src/model/stages/index.ts +1 -1
- package/src/resolvers/Resolver.ts +1 -1
- package/src/resolvers/ResolverFactory.ts +9 -6
- package/src/resolvers/SystemResolverContext.ts +6 -6
- package/src/resolvers/index.ts +5 -5
- package/src/resolvers/mutation/MigrateMutationResolver.ts +64 -7
- package/src/resolvers/mutation/MigrationAlterMutationResolver.ts +4 -4
- package/src/resolvers/mutation/TruncateMutationResolver.ts +5 -5
- package/src/resolvers/mutation/index.ts +3 -3
- package/src/resolvers/query/EventsQueryResolver.ts +4 -4
- package/src/resolvers/query/ExecutedMigrationsQueryResolver.ts +4 -4
- package/src/resolvers/query/SchemaQueryResolver.ts +3 -3
- package/src/resolvers/query/StagesQueryResolver.ts +4 -4
- package/src/resolvers/query/index.ts +3 -3
- package/src/resolvers/types/EventOldValuesResolver.ts +3 -3
- package/src/resolvers/types/OldValuesHelpers.ts +3 -3
- package/src/resolvers/types/index.ts +1 -1
- package/src/schema/dev.graphql.ts +1 -1
- package/src/schema/index.ts +4 -2
- package/src/schema/system.graphql.ts +39 -3
- package/src/schema/types.ts +108 -38
- package/src/utils/batchQuery.ts +1 -1
- package/src/utils/index.ts +7 -7
- package/src/utils/providers.ts +1 -1
- package/tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts +1 -1
- package/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts +1 -1
- package/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts +1 -1
- package/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.ts +1 -1
- package/tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts +1 -1
- package/tests/cases/migrations/2025-03-14-110000-fix-missing-index.test.ts +1 -1
- package/tests/cases/unit/eventsQuery.test.ts +3 -3
- package/tests/cases/unit/projectMigratorSchemaState.test.ts +48 -0
- package/tests/cases/unit/truncateEventsCommand.test.ts +54 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2023-10-19-173000-fix-unique.js","sources":["../../../../../packages/engine-system-api/src/migrations/2023-10-19-173000-fix-unique.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata, wrapIdentifier } from '@contember/database'\nimport { SystemMigrationArgs } from './types'\nimport { getUniqueConstraintColumns } from '@contember/schema-migrations'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{ schema: string }>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.view) {\n\t\t\tcontinue\n\t\t}\n\n\t\tconst expectedUnique: string[][] = []\n\n\t\tfor (const uniq of entity.unique) {\n\t\t\tconst columns = getUniqueConstraintColumns({\n\t\t\t\tentity,\n\t\t\t\tfields: uniq.fields,\n\t\t\t\tmodel: schema.model,\n\t\t\t})\n\t\t\texpectedUnique.push(columns)\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tconst existingUniqueConstraints = databaseMetadata.uniqueConstraints.filter({ tableName: entity.tableName }).toArray()\n\t\t\tfor (const constraint of existingUniqueConstraints) {\n\t\t\t\tif (constraint.columnNames.length === 1 || expectedUnique.some(it => stringArrayEquals(it, constraint.columnNames))) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tbuilder.sql(\n\t\t\t\t\t`ALTER TABLE ${wrapIdentifier(stage.schema)}.${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(constraint.constraintName)}`,\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n}\nconst stringArrayEquals = (colA: string[], colB: string[]) => {\n\tif (colA.length !== colB.length) {\n\t\treturn false\n\t}\n\tconst a = [...colA].sort()\n\tconst b = [...colB].sort()\n\treturn a.every((it, index) => it === b[index])\n}\n"],"names":[],"mappings":";;AAKA,eAAA,yBAA8B,SAA2B,MAA0C;AALnG,MAAA;AAMC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAA0B,0BAA0B,GAAG;AAC7F,QAAM,kBAAoD,CAAA;AAE1D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AAC1D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEA,UAAM,iBAA6B,CAAA;AAEnC,eAAW,QAAQ,OAAO,QAAQ;AACjC,YAAM,UAAU,2BAA2B;AAAA,QAC1C;AAAA,QACA,QAAQ,KAAK;AAAA,QACb,OAAO,OAAO;AAAA,MAAA,CACd;AACD,qBAAe,KAAK,OAAO;AAAA,IAC5B;AAEA,eAAW,SAAS,QAAQ;AAC3B,YAAM,mBAAmB,gBAAA,KAAgB,MAAM,MAAA,MAAtB,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAE5H,YAAM,4BAA4B,iBAAiB,kBAAkB,OAAO,EAAE,WAAW,OAAO,WAAW,EAAE,QAAA;AAC7G,iBAAW,cAAc,2BAA2B;AACnD,YAAI,WAAW,YAAY,WAAW,KAAK,eAAe,KAAK,CAAA,OAAM,kBAAkB,IAAI,WAAW,WAAW,CAAC,GAAG;AACpH;AAAA,QACD;AACA,gBAAQ;AAAA,UACP,eAAe,eAAe,MAAM,MAAM,CAAC,IAAI,eAAe,OAAO,SAAS,CAAC,oBAAoB,eAAe,WAAW,cAAc,CAAC;AAAA,QAAA;AAAA,MAE9I;AAAA,IACD;AAAA,EACD;AACD;AACA,MAAM,oBAAoB,CAAC,MAAgB,SAAmB;AAC7D,MAAI,KAAK,WAAW,KAAK,QAAQ;AAChC,WAAO;AAAA,EACR;AACA,QAAM,IAAI,CAAC,GAAG,IAAI,EAAE,KAAA;AACpB,QAAM,IAAI,CAAC,GAAG,IAAI,EAAE,KAAA;AACpB,SAAO,EAAE,MAAM,CAAC,IAAI,UAAU,OAAO,EAAE,KAAK,CAAC;AAC9C;"}
|
|
1
|
+
{"version":3,"file":"2023-10-19-173000-fix-unique.js","sources":["../../../../../packages/engine-system-api/src/migrations/2023-10-19-173000-fix-unique.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata, wrapIdentifier } from '@contember/database'\nimport { SystemMigrationArgs } from './types.js'\nimport { getUniqueConstraintColumns } from '@contember/schema-migrations'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{ schema: string }>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.view) {\n\t\t\tcontinue\n\t\t}\n\n\t\tconst expectedUnique: string[][] = []\n\n\t\tfor (const uniq of entity.unique) {\n\t\t\tconst columns = getUniqueConstraintColumns({\n\t\t\t\tentity,\n\t\t\t\tfields: uniq.fields,\n\t\t\t\tmodel: schema.model,\n\t\t\t})\n\t\t\texpectedUnique.push(columns)\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tconst existingUniqueConstraints = databaseMetadata.uniqueConstraints.filter({ tableName: entity.tableName }).toArray()\n\t\t\tfor (const constraint of existingUniqueConstraints) {\n\t\t\t\tif (constraint.columnNames.length === 1 || expectedUnique.some(it => stringArrayEquals(it, constraint.columnNames))) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tbuilder.sql(\n\t\t\t\t\t`ALTER TABLE ${wrapIdentifier(stage.schema)}.${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(constraint.constraintName)}`,\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n}\nconst stringArrayEquals = (colA: string[], colB: string[]) => {\n\tif (colA.length !== colB.length) {\n\t\treturn false\n\t}\n\tconst a = [...colA].sort()\n\tconst b = [...colB].sort()\n\treturn a.every((it, index) => it === b[index])\n}\n"],"names":[],"mappings":";;AAKA,eAAA,yBAA8B,SAA2B,MAA0C;AALnG,MAAA;AAMC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAA0B,0BAA0B,GAAG;AAC7F,QAAM,kBAAoD,CAAA;AAE1D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AAC1D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEA,UAAM,iBAA6B,CAAA;AAEnC,eAAW,QAAQ,OAAO,QAAQ;AACjC,YAAM,UAAU,2BAA2B;AAAA,QAC1C;AAAA,QACA,QAAQ,KAAK;AAAA,QACb,OAAO,OAAO;AAAA,MAAA,CACd;AACD,qBAAe,KAAK,OAAO;AAAA,IAC5B;AAEA,eAAW,SAAS,QAAQ;AAC3B,YAAM,mBAAmB,gBAAA,KAAgB,MAAM,MAAA,MAAtB,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAE5H,YAAM,4BAA4B,iBAAiB,kBAAkB,OAAO,EAAE,WAAW,OAAO,WAAW,EAAE,QAAA;AAC7G,iBAAW,cAAc,2BAA2B;AACnD,YAAI,WAAW,YAAY,WAAW,KAAK,eAAe,KAAK,CAAA,OAAM,kBAAkB,IAAI,WAAW,WAAW,CAAC,GAAG;AACpH;AAAA,QACD;AACA,gBAAQ;AAAA,UACP,eAAe,eAAe,MAAM,MAAM,CAAC,IAAI,eAAe,OAAO,SAAS,CAAC,oBAAoB,eAAe,WAAW,cAAc,CAAC;AAAA,QAAA;AAAA,MAE9I;AAAA,IACD;AAAA,EACD;AACD;AACA,MAAM,oBAAoB,CAAC,MAAgB,SAAmB;AAC7D,MAAI,KAAK,WAAW,KAAK,QAAQ;AAChC,WAAO;AAAA,EACR;AACA,QAAM,IAAI,CAAC,GAAG,IAAI,EAAE,KAAA;AACpB,QAAM,IAAI,CAAC,GAAG,IAAI,EAAE,KAAA;AACpB,SAAO,EAAE,MAAM,CAAC,IAAI,UAAU,OAAO,EAAE,KAAK,CAAC;AAC9C;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2024-06-28-153001-schema-init.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/2024-06-28-153001-schema-init.ts"],"sourcesContent":["import { escapeValue, MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { SystemMigrationArgs } from './types'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = await args.schemaResolver(args.connection)\n\tif (!schema.meta.id) {\n\t\treturn\n\t}\n\tbuilder.sql(`INSERT INTO schema(schema, checksum, version, migration_id) \nVALUES(${escapeValue(JSON.stringify(schema.schema))}, ${escapeValue(schema.meta.checksum)}, ${escapeValue(schema.meta.version)}, ${schema.meta.id})`)\n}\n"],"names":["escapeValue"],"mappings":";;AAGA,eAAA,0BAA8B,SAA2B,MAA0C;AAClG,QAAM,SAAS,MAAM,KAAK,eAAe,KAAK,UAAU;AACxD,MAAI,CAAC,OAAO,KAAK,IAAI;AACpB;AAAA,EACD;AACA,UAAQ,IAAI;AAAA,SACJA,+BAAY,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC,KAAKA,mBAAAA,YAAY,OAAO,KAAK,QAAQ,CAAC,KAAKA,mBAAAA,YAAY,OAAO,KAAK,OAAO,CAAC,KAAK,OAAO,KAAK,EAAE,GAAG;AACpJ;;"}
|
|
1
|
+
{"version":3,"file":"2024-06-28-153001-schema-init.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/2024-06-28-153001-schema-init.ts"],"sourcesContent":["import { escapeValue, MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { SystemMigrationArgs } from './types.js'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = await args.schemaResolver(args.connection)\n\tif (!schema.meta.id) {\n\t\treturn\n\t}\n\tbuilder.sql(`INSERT INTO schema(schema, checksum, version, migration_id) \nVALUES(${escapeValue(JSON.stringify(schema.schema))}, ${escapeValue(schema.meta.checksum)}, ${escapeValue(schema.meta.version)}, ${schema.meta.id})`)\n}\n"],"names":["escapeValue"],"mappings":";;AAGA,eAAA,0BAA8B,SAA2B,MAA0C;AAClG,QAAM,SAAS,MAAM,KAAK,eAAe,KAAK,UAAU;AACxD,MAAI,CAAC,OAAO,KAAK,IAAI;AACpB;AAAA,EACD;AACA,UAAQ,IAAI;AAAA,SACJA,+BAAY,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC,KAAKA,mBAAAA,YAAY,OAAO,KAAK,QAAQ,CAAC,KAAKA,mBAAAA,YAAY,OAAO,KAAK,OAAO,CAAC,KAAK,OAAO,KAAK,EAAE,GAAG;AACpJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2024-06-28-153001-schema-init.js","sources":["../../../../../packages/engine-system-api/src/migrations/2024-06-28-153001-schema-init.ts"],"sourcesContent":["import { escapeValue, MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { SystemMigrationArgs } from './types'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = await args.schemaResolver(args.connection)\n\tif (!schema.meta.id) {\n\t\treturn\n\t}\n\tbuilder.sql(`INSERT INTO schema(schema, checksum, version, migration_id) \nVALUES(${escapeValue(JSON.stringify(schema.schema))}, ${escapeValue(schema.meta.checksum)}, ${escapeValue(schema.meta.version)}, ${schema.meta.id})`)\n}\n"],"names":[],"mappings":";AAGA,eAAA,0BAA8B,SAA2B,MAA0C;AAClG,QAAM,SAAS,MAAM,KAAK,eAAe,KAAK,UAAU;AACxD,MAAI,CAAC,OAAO,KAAK,IAAI;AACpB;AAAA,EACD;AACA,UAAQ,IAAI;AAAA,SACJ,YAAY,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC,KAAK,YAAY,OAAO,KAAK,QAAQ,CAAC,KAAK,YAAY,OAAO,KAAK,OAAO,CAAC,KAAK,OAAO,KAAK,EAAE,GAAG;AACpJ;"}
|
|
1
|
+
{"version":3,"file":"2024-06-28-153001-schema-init.js","sources":["../../../../../packages/engine-system-api/src/migrations/2024-06-28-153001-schema-init.ts"],"sourcesContent":["import { escapeValue, MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { SystemMigrationArgs } from './types.js'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = await args.schemaResolver(args.connection)\n\tif (!schema.meta.id) {\n\t\treturn\n\t}\n\tbuilder.sql(`INSERT INTO schema(schema, checksum, version, migration_id) \nVALUES(${escapeValue(JSON.stringify(schema.schema))}, ${escapeValue(schema.meta.checksum)}, ${escapeValue(schema.meta.version)}, ${schema.meta.id})`)\n}\n"],"names":[],"mappings":";AAGA,eAAA,0BAA8B,SAA2B,MAA0C;AAClG,QAAM,SAAS,MAAM,KAAK,eAAe,KAAK,UAAU;AACxD,MAAI,CAAC,OAAO,KAAK,IAAI;AACpB;AAAA,EACD;AACA,UAAQ,IAAI;AAAA,SACJ,YAAY,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC,KAAK,YAAY,OAAO,KAAK,QAAQ,CAAC,KAAK,YAAY,OAAO,KAAK,OAAO,CAAC,KAAK,OAAO,KAAK,EAAE,GAAG;AACpJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2025-03-14-110000-fix-missing-index.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/2025-03-14-110000-fix-missing-index.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata } from '@contember/database'\nimport { SystemMigrationArgs } from './types'\nimport { wrapIdentifier } from '@contember/database'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{ schema: string }>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.indexes.length === 0) {\n\t\t\tcontinue\n\t\t}\n\t\tif (entity.view) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tfor (const index of entity.indexes) {\n\t\t\t\tconst columns = getIndexColumns({\n\t\t\t\t\tentity,\n\t\t\t\t\tfields: index.fields,\n\t\t\t\t\tmodel: schema.model,\n\t\t\t\t})\n\t\t\t\tconst indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\t\t\t\tif (indexNames.length > 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(', ')})`)\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst getIndexColumns = ({ entity, fields, model }: { fields: readonly string[]; model: Model.Schema; entity: Model.Entity }) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":["wrapIdentifier","acceptFieldVisitor"],"mappings":";;;AAOA,eAAA,+BAA8B,SAA2B,MAA0C;AAPnG,MAAA;AAQC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAA0B,0BAA0B,GAAG;AAC7F,QAAM,kBAAoD,CAAA;AAE1D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AAC1D,QAAI,OAAO,QAAQ,WAAW,GAAG;AAChC;AAAA,IACD;AACA,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEA,eAAW,SAAS,QAAQ;AAC3B,YAAM,mBAAmB,gBAAA,KAAgB,MAAM,MAAA,MAAtB,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAE5H,iBAAW,SAAS,OAAO,SAAS;AACnC,cAAM,UAAU,gBAAgB;AAAA,UAC/B;AAAA,UACA,QAAQ,MAAM;AAAA,UACd,OAAO,OAAO;AAAA,QAAA,CACd;AACD,cAAM,aAAa,iBAAiB,QAAQ,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAA,CAAS,EAAE,SAAA;AAC1G,YAAI,WAAW,SAAS,GAAG;AAC1B;AAAA,QACD;AAEA,cAAM,cAAcA,SAAAA,eAAe,OAAO,SAAS;AACnD,cAAM,gBAAgB,QAAQ,IAAIA,uBAAc;AAEhD,gBAAQ,IAAI,mBAAmBA,SAAAA,eAAe,MAAM,MAAM,CAAC,IAAI,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC,GAAG;AAAA,MAC3G;AAAA,IACD;AAAA,EACD;AACD;AAEA,MAAM,kBAAkB,CAAC,EAAE,QAAQ,QAAQ,YAAsF;AAChI,SAAO,OAAO,IAAI,CAAA,cAAa;AAC9B,WAAOC,+BAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,sBAAsB,CAAC,EAAE,eAAe;AACvC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,IAAA,CACA;AAAA,EACF,CAAC;AACF;;"}
|
|
1
|
+
{"version":3,"file":"2025-03-14-110000-fix-missing-index.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/2025-03-14-110000-fix-missing-index.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata } from '@contember/database'\nimport { SystemMigrationArgs } from './types.js'\nimport { wrapIdentifier } from '@contember/database'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{ schema: string }>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.indexes.length === 0) {\n\t\t\tcontinue\n\t\t}\n\t\tif (entity.view) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tfor (const index of entity.indexes) {\n\t\t\t\tconst columns = getIndexColumns({\n\t\t\t\t\tentity,\n\t\t\t\t\tfields: index.fields,\n\t\t\t\t\tmodel: schema.model,\n\t\t\t\t})\n\t\t\t\tconst indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\t\t\t\tif (indexNames.length > 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(', ')})`)\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst getIndexColumns = ({ entity, fields, model }: { fields: readonly string[]; model: Model.Schema; entity: Model.Entity }) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":["wrapIdentifier","acceptFieldVisitor"],"mappings":";;;AAOA,eAAA,+BAA8B,SAA2B,MAA0C;AAPnG,MAAA;AAQC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAA0B,0BAA0B,GAAG;AAC7F,QAAM,kBAAoD,CAAA;AAE1D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AAC1D,QAAI,OAAO,QAAQ,WAAW,GAAG;AAChC;AAAA,IACD;AACA,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEA,eAAW,SAAS,QAAQ;AAC3B,YAAM,mBAAmB,gBAAA,KAAgB,MAAM,MAAA,MAAtB,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAE5H,iBAAW,SAAS,OAAO,SAAS;AACnC,cAAM,UAAU,gBAAgB;AAAA,UAC/B;AAAA,UACA,QAAQ,MAAM;AAAA,UACd,OAAO,OAAO;AAAA,QAAA,CACd;AACD,cAAM,aAAa,iBAAiB,QAAQ,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAA,CAAS,EAAE,SAAA;AAC1G,YAAI,WAAW,SAAS,GAAG;AAC1B;AAAA,QACD;AAEA,cAAM,cAAcA,SAAAA,eAAe,OAAO,SAAS;AACnD,cAAM,gBAAgB,QAAQ,IAAIA,uBAAc;AAEhD,gBAAQ,IAAI,mBAAmBA,SAAAA,eAAe,MAAM,MAAM,CAAC,IAAI,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC,GAAG;AAAA,MAC3G;AAAA,IACD;AAAA,EACD;AACD;AAEA,MAAM,kBAAkB,CAAC,EAAE,QAAQ,QAAQ,YAAsF;AAChI,SAAO,OAAO,IAAI,CAAA,cAAa;AAC9B,WAAOC,+BAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,sBAAsB,CAAC,EAAE,eAAe;AACvC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,IAAA,CACA;AAAA,EACF,CAAC;AACF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2025-03-14-110000-fix-missing-index.js","sources":["../../../../../packages/engine-system-api/src/migrations/2025-03-14-110000-fix-missing-index.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata } from '@contember/database'\nimport { SystemMigrationArgs } from './types'\nimport { wrapIdentifier } from '@contember/database'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{ schema: string }>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.indexes.length === 0) {\n\t\t\tcontinue\n\t\t}\n\t\tif (entity.view) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tfor (const index of entity.indexes) {\n\t\t\t\tconst columns = getIndexColumns({\n\t\t\t\t\tentity,\n\t\t\t\t\tfields: index.fields,\n\t\t\t\t\tmodel: schema.model,\n\t\t\t\t})\n\t\t\t\tconst indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\t\t\t\tif (indexNames.length > 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(', ')})`)\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst getIndexColumns = ({ entity, fields, model }: { fields: readonly string[]; model: Model.Schema; entity: Model.Entity }) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":[],"mappings":";;AAOA,eAAA,+BAA8B,SAA2B,MAA0C;AAPnG,MAAA;AAQC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAA0B,0BAA0B,GAAG;AAC7F,QAAM,kBAAoD,CAAA;AAE1D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AAC1D,QAAI,OAAO,QAAQ,WAAW,GAAG;AAChC;AAAA,IACD;AACA,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEA,eAAW,SAAS,QAAQ;AAC3B,YAAM,mBAAmB,gBAAA,KAAgB,MAAM,MAAA,MAAtB,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAE5H,iBAAW,SAAS,OAAO,SAAS;AACnC,cAAM,UAAU,gBAAgB;AAAA,UAC/B;AAAA,UACA,QAAQ,MAAM;AAAA,UACd,OAAO,OAAO;AAAA,QAAA,CACd;AACD,cAAM,aAAa,iBAAiB,QAAQ,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAA,CAAS,EAAE,SAAA;AAC1G,YAAI,WAAW,SAAS,GAAG;AAC1B;AAAA,QACD;AAEA,cAAM,cAAc,eAAe,OAAO,SAAS;AACnD,cAAM,gBAAgB,QAAQ,IAAI,cAAc;AAEhD,gBAAQ,IAAI,mBAAmB,eAAe,MAAM,MAAM,CAAC,IAAI,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC,GAAG;AAAA,MAC3G;AAAA,IACD;AAAA,EACD;AACD;AAEA,MAAM,kBAAkB,CAAC,EAAE,QAAQ,QAAQ,YAAsF;AAChI,SAAO,OAAO,IAAI,CAAA,cAAa;AAC9B,WAAO,mBAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,sBAAsB,CAAC,EAAE,eAAe;AACvC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,IAAA,CACA;AAAA,EACF,CAAC;AACF;"}
|
|
1
|
+
{"version":3,"file":"2025-03-14-110000-fix-missing-index.js","sources":["../../../../../packages/engine-system-api/src/migrations/2025-03-14-110000-fix-missing-index.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { DatabaseMetadata } from '@contember/database'\nimport { SystemMigrationArgs } from './types.js'\nimport { wrapIdentifier } from '@contember/database'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport default async function(builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {\n\tconst schema = (await args.schemaResolver(args.connection)).schema\n\tconst stages = (await args.connection.query<{ schema: string }>('SELECT schema FROM stage')).rows\n\tconst metadataByStage: Record<string, DatabaseMetadata> = {}\n\n\tfor (const entity of Object.values(schema.model.entities)) {\n\t\tif (entity.indexes.length === 0) {\n\t\t\tcontinue\n\t\t}\n\t\tif (entity.view) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const stage of stages) {\n\t\t\tconst databaseMetadata = metadataByStage[stage.schema] ??= await args.databaseMetadataResolver(args.connection, stage.schema)\n\n\t\t\tfor (const index of entity.indexes) {\n\t\t\t\tconst columns = getIndexColumns({\n\t\t\t\t\tentity,\n\t\t\t\t\tfields: index.fields,\n\t\t\t\t\tmodel: schema.model,\n\t\t\t\t})\n\t\t\t\tconst indexNames = databaseMetadata.indexes.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\t\t\t\tif (indexNames.length > 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${wrapIdentifier(stage.schema)}.${tableNameId} (${columnNameIds.join(', ')})`)\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst getIndexColumns = ({ entity, fields, model }: { fields: readonly string[]; model: Model.Schema; entity: Model.Entity }) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create index on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":[],"mappings":";;AAOA,eAAA,+BAA8B,SAA2B,MAA0C;AAPnG,MAAA;AAQC,QAAM,UAAU,MAAM,KAAK,eAAe,KAAK,UAAU,GAAG;AAC5D,QAAM,UAAU,MAAM,KAAK,WAAW,MAA0B,0BAA0B,GAAG;AAC7F,QAAM,kBAAoD,CAAA;AAE1D,aAAW,UAAU,OAAO,OAAO,OAAO,MAAM,QAAQ,GAAG;AAC1D,QAAI,OAAO,QAAQ,WAAW,GAAG;AAChC;AAAA,IACD;AACA,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEA,eAAW,SAAS,QAAQ;AAC3B,YAAM,mBAAmB,gBAAA,KAAgB,MAAM,MAAA,MAAtB,gBAAA,EAAA,IAAkC,MAAM,KAAK,yBAAyB,KAAK,YAAY,MAAM,MAAM;AAE5H,iBAAW,SAAS,OAAO,SAAS;AACnC,cAAM,UAAU,gBAAgB;AAAA,UAC/B;AAAA,UACA,QAAQ,MAAM;AAAA,UACd,OAAO,OAAO;AAAA,QAAA,CACd;AACD,cAAM,aAAa,iBAAiB,QAAQ,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAA,CAAS,EAAE,SAAA;AAC1G,YAAI,WAAW,SAAS,GAAG;AAC1B;AAAA,QACD;AAEA,cAAM,cAAc,eAAe,OAAO,SAAS;AACnD,cAAM,gBAAgB,QAAQ,IAAI,cAAc;AAEhD,gBAAQ,IAAI,mBAAmB,eAAe,MAAM,MAAM,CAAC,IAAI,WAAW,KAAK,cAAc,KAAK,IAAI,CAAC,GAAG;AAAA,MAC3G;AAAA,IACD;AAAA,EACD;AACD;AAEA,MAAM,kBAAkB,CAAC,EAAE,QAAQ,QAAQ,YAAsF;AAChI,SAAO,OAAO,IAAI,CAAA,cAAa;AAC9B,WAAO,mBAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,sBAAsB,CAAC,EAAE,eAAe;AACvC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,0CAA0C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MACrF;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,kDAAkD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC7F;AAAA,IAAA,CACA;AAAA,EACF,CAAC;AACF;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const sql = `
|
|
3
|
+
ALTER DOMAIN "event_data_type" DROP CONSTRAINT "event_data_type_check";
|
|
4
|
+
ALTER DOMAIN "event_data_type"
|
|
5
|
+
ADD CONSTRAINT "event_data_type_check" CHECK ((VALUE = ANY (ARRAY['create'::"text", 'update'::"text", 'delete'::"text", 'truncate'::"text"]))) NOT VALID;
|
|
6
|
+
ALTER TABLE "event_data" ALTER COLUMN "table_name" DROP NOT NULL;
|
|
7
|
+
ALTER TABLE "event_data" ALTER COLUMN "row_ids" DROP NOT NULL;
|
|
8
|
+
`;
|
|
9
|
+
async function _20260601120000eventtruncate(builder) {
|
|
10
|
+
builder.sql(sql);
|
|
11
|
+
}
|
|
12
|
+
module.exports = _20260601120000eventtruncate;
|
|
13
|
+
//# sourceMappingURL=2026-06-01-120000-event-truncate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2026-06-01-120000-event-truncate.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/2026-06-01-120000-event-truncate.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\n\n// The new domain constraint is a strict superset of the old one (it only adds 'truncate'),\n// so every existing `event_data` row is already known-valid. We add it as NOT VALID to skip\n// the full validation scan of `event_data` — which is the content event log and typically the\n// largest table in the system schema — that PostgreSQL would otherwise run while holding locks\n// inside the migration transaction. New/updated rows are still checked, and no VALIDATE is needed.\nconst sql = `\nALTER DOMAIN \"event_data_type\" DROP CONSTRAINT \"event_data_type_check\";\nALTER DOMAIN \"event_data_type\"\n\tADD CONSTRAINT \"event_data_type_check\" CHECK ((VALUE = ANY (ARRAY['create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'truncate'::\"text\"]))) NOT VALID;\nALTER TABLE \"event_data\" ALTER COLUMN \"table_name\" DROP NOT NULL;\nALTER TABLE \"event_data\" ALTER COLUMN \"row_ids\" DROP NOT NULL;\n`\n\nexport default async function(builder: MigrationBuilder) {\n\tbuilder.sql(sql)\n}\n"],"names":[],"mappings":";AAOA,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQZ,eAAA,6BAA8B,SAA2B;AACxD,UAAQ,IAAI,GAAG;AAChB;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const sql = `
|
|
2
|
+
ALTER DOMAIN "event_data_type" DROP CONSTRAINT "event_data_type_check";
|
|
3
|
+
ALTER DOMAIN "event_data_type"
|
|
4
|
+
ADD CONSTRAINT "event_data_type_check" CHECK ((VALUE = ANY (ARRAY['create'::"text", 'update'::"text", 'delete'::"text", 'truncate'::"text"]))) NOT VALID;
|
|
5
|
+
ALTER TABLE "event_data" ALTER COLUMN "table_name" DROP NOT NULL;
|
|
6
|
+
ALTER TABLE "event_data" ALTER COLUMN "row_ids" DROP NOT NULL;
|
|
7
|
+
`;
|
|
8
|
+
async function _20260601120000eventtruncate(builder) {
|
|
9
|
+
builder.sql(sql);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
_20260601120000eventtruncate as default
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=2026-06-01-120000-event-truncate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2026-06-01-120000-event-truncate.js","sources":["../../../../../packages/engine-system-api/src/migrations/2026-06-01-120000-event-truncate.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\n\n// The new domain constraint is a strict superset of the old one (it only adds 'truncate'),\n// so every existing `event_data` row is already known-valid. We add it as NOT VALID to skip\n// the full validation scan of `event_data` — which is the content event log and typically the\n// largest table in the system schema — that PostgreSQL would otherwise run while holding locks\n// inside the migration transaction. New/updated rows are still checked, and no VALIDATE is needed.\nconst sql = `\nALTER DOMAIN \"event_data_type\" DROP CONSTRAINT \"event_data_type_check\";\nALTER DOMAIN \"event_data_type\"\n\tADD CONSTRAINT \"event_data_type_check\" CHECK ((VALUE = ANY (ARRAY['create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'truncate'::\"text\"]))) NOT VALID;\nALTER TABLE \"event_data\" ALTER COLUMN \"table_name\" DROP NOT NULL;\nALTER TABLE \"event_data\" ALTER COLUMN \"row_ids\" DROP NOT NULL;\n`\n\nexport default async function(builder: MigrationBuilder) {\n\tbuilder.sql(sql)\n}\n"],"names":[],"mappings":"AAOA,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQZ,eAAA,6BAA8B,SAA2B;AACxD,UAAQ,IAAI,GAAG;AAChB;"}
|
|
@@ -27,6 +27,7 @@ const _20240628153000Schema = require("./2024-06-28-153000-schema.cjs");
|
|
|
27
27
|
const _20240628153001SchemaInit = require("./2024-06-28-153001-schema-init.cjs");
|
|
28
28
|
const _20240729150000EventDataIndex = require("./2024-07-29-150000-event-data-index.cjs");
|
|
29
29
|
const _20250314110000FixMissingIndex = require("./2025-03-14-110000-fix-missing-index.cjs");
|
|
30
|
+
const _20260601120000EventTruncate = require("./2026-06-01-120000-event-truncate.cjs");
|
|
30
31
|
const snapshot = require("./snapshot.cjs");
|
|
31
32
|
const Database = require("@contember/database");
|
|
32
33
|
const migrations = {
|
|
@@ -55,7 +56,8 @@ const migrations = {
|
|
|
55
56
|
"2024-06-28-153000-schema": _20240628153000Schema,
|
|
56
57
|
"2024-06-28-153001-schema-init": _20240628153001SchemaInit,
|
|
57
58
|
"2024-07-29-150000-event-data-index": _20240729150000EventDataIndex,
|
|
58
|
-
"2025-03-14-110000-fix-missing-index": _20250314110000FixMissingIndex
|
|
59
|
+
"2025-03-14-110000-fix-missing-index": _20250314110000FixMissingIndex,
|
|
60
|
+
"2026-06-01-120000-event-truncate": _20260601120000EventTruncate
|
|
59
61
|
};
|
|
60
62
|
class SystemMigrationsRunner {
|
|
61
63
|
constructor(databaseContextFactory, project, schemaProvider, migrationGroups, databaseMetadataResolver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'\nimport _20240628153000schema from './2024-06-28-153000-schema'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'\nimport _20250314110000fixmissingindex from './2025-03-14-110000-fix-missing-index'\nimport snapshot from './snapshot'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model'\nimport { ProjectConfig } from '../types'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n\t'2025-03-14-110000-fix-missing-index': _20250314110000fixmissingindex,\n}\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(\n\t\t\t\t\tObject.entries(this.migrationGroups).map(\n\t\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\t\tgroup,\n\t\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t],\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["_20180804102200init","_20180805130501triggereventfunction","_20190114143432eventtrxid","_20190204154500eventrebase","_20190318104147eventrunmigrationstruct","_20190729103000triggereventfunctionfix","_20191128100000missingsettingfallback","_20200327130000projectmigrations","_20200506150000composedprimary","_20200601103000eventtriggerperf","_20210323110000timestampfix","_20210507155800eventlogrework","_202105191232000eventlogfixconstraint","_20211221155500eventsup","_20220208132600fnsearchpath","_20220208140500dropdeadcode","_20220208144400dynamicstageschema","_20221003110000tableondelete","_20230911174000fixondelete","_20231019173000fixunique","_20231024140000schemanullablechecksum","_20240628150000migrationsdropsequence","_20240628153000schema","_20240628153001schemainit","_20240729150000eventdataindex","_20250314110000fixmissingindex","createDatabaseIfNotExists","Connection","connection","GroupMigrationsResolver","SnapshotMigrationResolver","DbMigrationsRunner"],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init.js'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function.js'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id.js'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase.js'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct.js'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix.js'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback.js'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations.js'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary.js'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf.js'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix.js'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework.js'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint.js'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up.js'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path.js'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode.js'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema.js'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete.js'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete.js'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique.js'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum.js'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence.js'\nimport _20240628153000schema from './2024-06-28-153000-schema.js'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init.js'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index.js'\nimport _20250314110000fixmissingindex from './2025-03-14-110000-fix-missing-index.js'\nimport _20260601120000eventtruncate from './2026-06-01-120000-event-truncate.js'\nimport snapshot from './snapshot.js'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model/index.js'\nimport { ProjectConfig } from '../types.js'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n\t'2025-03-14-110000-fix-missing-index': _20250314110000fixmissingindex,\n\t'2026-06-01-120000-event-truncate': _20260601120000eventtruncate,\n}\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(\n\t\t\t\t\tObject.entries(this.migrationGroups).map(\n\t\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\t\tgroup,\n\t\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t],\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["_20180804102200init","_20180805130501triggereventfunction","_20190114143432eventtrxid","_20190204154500eventrebase","_20190318104147eventrunmigrationstruct","_20190729103000triggereventfunctionfix","_20191128100000missingsettingfallback","_20200327130000projectmigrations","_20200506150000composedprimary","_20200601103000eventtriggerperf","_20210323110000timestampfix","_20210507155800eventlogrework","_202105191232000eventlogfixconstraint","_20211221155500eventsup","_20220208132600fnsearchpath","_20220208140500dropdeadcode","_20220208144400dynamicstageschema","_20221003110000tableondelete","_20230911174000fixondelete","_20231019173000fixunique","_20231024140000schemanullablechecksum","_20240628150000migrationsdropsequence","_20240628153000schema","_20240628153001schemainit","_20240729150000eventdataindex","_20250314110000fixmissingindex","_20260601120000eventtruncate","createDatabaseIfNotExists","Connection","connection","GroupMigrationsResolver","SnapshotMigrationResolver","DbMigrationsRunner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAM,aAAa;AAAA,EAClB,0BAA0BA;AAAAA,EAC1B,4CAA4CC;AAAAA,EAC5C,kCAAkCC;AAAAA,EAClC,kCAAkCC;AAAAA,EAClC,gDAAgDC;AAAAA,EAChD,gDAAgDC;AAAAA,EAChD,8CAA8CC;AAAAA,EAC9C,wCAAwCC;AAAAA,EACxC,sCAAsCC;AAAAA,EACtC,wCAAwCC;AAAAA,EACxC,mCAAmCC;AAAAA,EACnC,sCAAsCC;AAAAA,EACtC,+CAA+CC;AAAAA,EAC/C,+BAA+BC;AAAAA,EAC/B,oCAAoCC;AAAAA,EACpC,mCAAmCC;AAAAA,EACnC,0CAA0CC;AAAAA,EAC1C,qCAAqCC;AAAAA,EACrC,mCAAmCC;AAAAA,EACnC,gCAAgCC;AAAAA,EAChC,8CAA8CC;AAAAA,EAC9C,8CAA8CC;AAAAA,EAC9C,4BAA4BC;AAAAA,EAC5B,iCAAiCC;AAAAA,EACjC,sCAAsCC;AAAAA,EACtC,uCAAuCC;AAAAA,EACvC,oCAAoCC;AACrC;AAEO,MAAM,uBAAuB;AAAA,EACnC,YACkB,wBACA,SACA,gBACA,iBACA,0BAChB;AALgB,SAAA,yBAAA;AACA,SAAA,UAAA;AACA,SAAA,iBAAA;AACA,SAAA,kBAAA;AACA,SAAA,2BAAA;AAAA,EAElB;AAAA,EACA,MAAM,IAAI,QAAgB;AACzB,UAAMC,SAAAA,0BAA0B,KAAK,QAAQ,IAAI,aAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AACtI,UAAM,mBAAmBC,SAAAA,WAAW,aAAa,KAAK,QAAQ,IAAI,CAAA,QAAO,OAAO,MAAM,GAAG,CAAC;AAC1F,UAAM,iBAAiB,MAAM,OAAM,eAAc;AAChD,YAAM,iBAAiB,OAAOC,gBAA0C;AACvE,cAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,eAAO,MAAM,KAAK,eAAe,0BAA0B,mBAAmB;AAAA,MAC/E;AACA,YAAM,oBAAoB,IAAIC,mBAAAA;AAAAA,QAC7B,IAAIC,mBAAAA,0BAA0B,UAAU,UAAU;AAAA,QAClD,OAAO;AAAA,UACN,OAAO,QAAQ,KAAK,eAAe,EAAE;AAAA,YACpC,CAAC,CAAC,OAAO,EAAE,MAAM;AAAA,cAChB;AAAA,cACA,IAAIA,mBAAAA;AAAAA,gBACH,GAAG;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,QAAQ,aAAa,GAAG;AAAA,gBAC9B;AAAA,cAAA;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAED,YAAM,mBAAmB,IAAIC,oCAAmB,YAAY,KAAK,QAAQ,cAAc,iBAAiB;AACxG,YAAM,iBAAiB,QAAQ,CAAA,YAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QAC/D,SAAS,KAAK;AAAA,QACd;AAAA,QACA,0BAA0B,CAACH,aAAuC,WAAmB;AACpF,gBAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,iBAAO,KAAK,yBAAyB,gBAAgB,oBAAoB,QAAQ,MAAM;AAAA,QACxF;AAAA,MAAA,CACA;AAAA,IACF,CAAC;AACD,UAAM,iBAAiB,IAAA;AAAA,EACxB;AACD;;"}
|
|
@@ -25,6 +25,7 @@ import _20240628153000schema from "./2024-06-28-153000-schema.js";
|
|
|
25
25
|
import _20240628153001schemainit from "./2024-06-28-153001-schema-init.js";
|
|
26
26
|
import _20240729150000eventdataindex from "./2024-07-29-150000-event-data-index.js";
|
|
27
27
|
import _20250314110000fixmissingindex from "./2025-03-14-110000-fix-missing-index.js";
|
|
28
|
+
import _20260601120000eventtruncate from "./2026-06-01-120000-event-truncate.js";
|
|
28
29
|
import snapshot from "./snapshot.js";
|
|
29
30
|
import { createDatabaseIfNotExists, Connection } from "@contember/database";
|
|
30
31
|
const migrations = {
|
|
@@ -53,7 +54,8 @@ const migrations = {
|
|
|
53
54
|
"2024-06-28-153000-schema": _20240628153000schema,
|
|
54
55
|
"2024-06-28-153001-schema-init": _20240628153001schemainit,
|
|
55
56
|
"2024-07-29-150000-event-data-index": _20240729150000eventdataindex,
|
|
56
|
-
"2025-03-14-110000-fix-missing-index": _20250314110000fixmissingindex
|
|
57
|
+
"2025-03-14-110000-fix-missing-index": _20250314110000fixmissingindex,
|
|
58
|
+
"2026-06-01-120000-event-truncate": _20260601120000eventtruncate
|
|
57
59
|
};
|
|
58
60
|
class SystemMigrationsRunner {
|
|
59
61
|
constructor(databaseContextFactory, project, schemaProvider, migrationGroups, databaseMetadataResolver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'\nimport _20240628153000schema from './2024-06-28-153000-schema'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'\nimport _20250314110000fixmissingindex from './2025-03-14-110000-fix-missing-index'\nimport snapshot from './snapshot'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model'\nimport { ProjectConfig } from '../types'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n\t'2025-03-14-110000-fix-missing-index': _20250314110000fixmissingindex,\n}\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(\n\t\t\t\t\tObject.entries(this.migrationGroups).map(\n\t\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\t\tgroup,\n\t\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t],\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["connection","DbMigrationsRunner"],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.js","sources":["../../../../../packages/engine-system-api/src/migrations/runner.ts"],"sourcesContent":["import {\n\tGroupMigrationsResolver,\n\tMigrationGroup,\n\tMigrationsRunner as DbMigrationsRunner,\n\tSnapshotMigrationResolver,\n} from '@contember/database-migrations'\nimport _20180804102200init from './2018-08-04-102200-init.js'\nimport _20180805130501triggereventfunction from './2018-08-05-130501-trigger-event-function.js'\nimport _20190114143432eventtrxid from './2019-01-14-143432-event-trx-id.js'\nimport _20190204154500eventrebase from './2019-02-04-154500-event-rebase.js'\nimport _20190318104147eventrunmigrationstruct from './2019-03-18-104147-event-run-migration-struct.js'\nimport _20190729103000triggereventfunctionfix from './2019-07-29-103000-trigger-event-function-fix.js'\nimport _20191128100000missingsettingfallback from './2019-11-28-100000-missing-setting-fallback.js'\nimport _20200327130000projectmigrations from './2020-03-27-130000-project-migrations.js'\nimport _20200506150000composedprimary from './2020-05-06-150000-composed-primary.js'\nimport _20200601103000eventtriggerperf from './2020-06-01-103000-event-trigger-perf.js'\nimport _20210323110000timestampfix from './2021-03-23-110000-timestamp-fix.js'\nimport _20210507155800eventlogrework from './2021-05-07-155800-event-log-rework.js'\nimport _202105191232000eventlogfixconstraint from './2021-05-19-1232000-event-log-fix-constraint.js'\nimport _20211221155500eventsup from './2021-12-21-155500-events-up.js'\nimport _20220208132600fnsearchpath from './2022-02-08-132600-fn-search-path.js'\nimport _20220208140500dropdeadcode from './2022-02-08-140500-drop-deadcode.js'\nimport _20220208144400dynamicstageschema from './2022-02-08-144400-dynamic-stage-schema.js'\nimport _20221003110000tableondelete from './2022-10-03-110000-table-on-delete.js'\nimport _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete.js'\nimport _20231019173000fixunique from './2023-10-19-173000-fix-unique.js'\nimport _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum.js'\nimport _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence.js'\nimport _20240628153000schema from './2024-06-28-153000-schema.js'\nimport _20240628153001schemainit from './2024-06-28-153001-schema-init.js'\nimport _20240729150000eventdataindex from './2024-07-29-150000-event-data-index.js'\nimport _20250314110000fixmissingindex from './2025-03-14-110000-fix-missing-index.js'\nimport _20260601120000eventtruncate from './2026-06-01-120000-event-truncate.js'\nimport snapshot from './snapshot.js'\n\nimport { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'\nimport { DatabaseContextFactory, SchemaProvider } from '../model/index.js'\nimport { ProjectConfig } from '../types.js'\nimport { Logger } from '@contember/logger'\n\nconst migrations = {\n\t'2018-08-04-102200-init': _20180804102200init,\n\t'2018-08-05-130501-trigger-event-function': _20180805130501triggereventfunction,\n\t'2019-01-14-143432-event-trx-id': _20190114143432eventtrxid,\n\t'2019-02-04-154500-event-rebase': _20190204154500eventrebase,\n\t'2019-03-18-104147-event-run-migration-struct': _20190318104147eventrunmigrationstruct,\n\t'2019-07-29-103000-trigger-event-function-fix': _20190729103000triggereventfunctionfix,\n\t'2019-11-28-100000-missing-setting-fallback': _20191128100000missingsettingfallback,\n\t'2020-03-27-130000-project-migrations': _20200327130000projectmigrations,\n\t'2020-05-06-150000-composed-primary': _20200506150000composedprimary,\n\t'2020-06-01-103000-event-trigger-perf': _20200601103000eventtriggerperf,\n\t'2021-03-23-110000-timestamp-fix': _20210323110000timestampfix,\n\t'2021-05-07-155800-event-log-rework': _20210507155800eventlogrework,\n\t'2021-05-19-1232000-event-log-fix-constraint': _202105191232000eventlogfixconstraint,\n\t'2021-12-21-155500-events-up': _20211221155500eventsup,\n\t'2022-02-08-132600-fn-search-path': _20220208132600fnsearchpath,\n\t'2022-02-08-140500-drop-deadcode': _20220208140500dropdeadcode,\n\t'2022-02-08-144400-dynamic-stage-schema': _20220208144400dynamicstageschema,\n\t'2022-10-03-110000-table-on-delete': _20221003110000tableondelete,\n\t'2023-09-11-174000-fix-on-delete': _20230911174000fixondelete,\n\t'2023-10-19-173000-fix-unique': _20231019173000fixunique,\n\t'2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,\n\t'2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,\n\t'2024-06-28-153000-schema': _20240628153000schema,\n\t'2024-06-28-153001-schema-init': _20240628153001schemainit,\n\t'2024-07-29-150000-event-data-index': _20240729150000eventdataindex,\n\t'2025-03-14-110000-fix-missing-index': _20250314110000fixmissingindex,\n\t'2026-06-01-120000-event-truncate': _20260601120000eventtruncate,\n}\n\nexport class SystemMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly databaseContextFactory: DatabaseContextFactory,\n\t\tprivate readonly project: ProjectConfig & { db: DatabaseConfig },\n\t\tprivate readonly schemaProvider: SchemaProvider,\n\t\tprivate readonly migrationGroups: Record<string, MigrationGroup<unknown>>,\n\t\tprivate readonly databaseMetadataResolver: DatabaseMetadataResolver,\n\t) {\n\t}\n\tasync run(logger: Logger) {\n\t\tawait createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))\n\t\tawait singleConnection.scope(async connection => {\n\t\t\tconst schemaResolver = async (connection: Connection.ConnectionLike) => {\n\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\treturn await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)\n\t\t\t}\n\t\t\tconst migrationResolver = new GroupMigrationsResolver(\n\t\t\t\tnew SnapshotMigrationResolver(snapshot, migrations),\n\t\t\t\tObject.fromEntries(\n\t\t\t\t\tObject.entries(this.migrationGroups).map(\n\t\t\t\t\t\t([group, it]) => [\n\t\t\t\t\t\t\tgroup,\n\t\t\t\t\t\t\tnew SnapshotMigrationResolver(\n\t\t\t\t\t\t\t\tit.snapshot,\n\t\t\t\t\t\t\t\tit.migrations,\n\t\t\t\t\t\t\t\tgroup.replace(/[^-_\\w]+/g, '-'),\n\t\t\t\t\t\t\t\tmigrations,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t],\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t)\n\t\t\tconst migrationsRunner = new DbMigrationsRunner(connection, this.project.systemSchema, migrationResolver)\n\t\t\tawait migrationsRunner.migrate(message => logger.warn(message), {\n\t\t\t\tproject: this.project,\n\t\t\t\tschemaResolver,\n\t\t\t\tdatabaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => {\n\t\t\t\t\tconst dbContextMigrations = this.databaseContextFactory.create(connection)\n\t\t\t\t\treturn this.databaseMetadataResolver.resolveMetadata(dbContextMigrations.client, schema)\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t\tawait singleConnection.end()\n\t}\n}\n"],"names":["connection","DbMigrationsRunner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAM,aAAa;AAAA,EAClB,0BAA0B;AAAA,EAC1B,4CAA4C;AAAA,EAC5C,kCAAkC;AAAA,EAClC,kCAAkC;AAAA,EAClC,gDAAgD;AAAA,EAChD,gDAAgD;AAAA,EAChD,8CAA8C;AAAA,EAC9C,wCAAwC;AAAA,EACxC,sCAAsC;AAAA,EACtC,wCAAwC;AAAA,EACxC,mCAAmC;AAAA,EACnC,sCAAsC;AAAA,EACtC,+CAA+C;AAAA,EAC/C,+BAA+B;AAAA,EAC/B,oCAAoC;AAAA,EACpC,mCAAmC;AAAA,EACnC,0CAA0C;AAAA,EAC1C,qCAAqC;AAAA,EACrC,mCAAmC;AAAA,EACnC,gCAAgC;AAAA,EAChC,8CAA8C;AAAA,EAC9C,8CAA8C;AAAA,EAC9C,4BAA4B;AAAA,EAC5B,iCAAiC;AAAA,EACjC,sCAAsC;AAAA,EACtC,uCAAuC;AAAA,EACvC,oCAAoC;AACrC;AAEO,MAAM,uBAAuB;AAAA,EACnC,YACkB,wBACA,SACA,gBACA,iBACA,0BAChB;AALgB,SAAA,yBAAA;AACA,SAAA,UAAA;AACA,SAAA,iBAAA;AACA,SAAA,kBAAA;AACA,SAAA,2BAAA;AAAA,EAElB;AAAA,EACA,MAAM,IAAI,QAAgB;AACzB,UAAM,0BAA0B,KAAK,QAAQ,IAAI,aAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AACtI,UAAM,mBAAmB,WAAW,aAAa,KAAK,QAAQ,IAAI,CAAA,QAAO,OAAO,MAAM,GAAG,CAAC;AAC1F,UAAM,iBAAiB,MAAM,OAAM,eAAc;AAChD,YAAM,iBAAiB,OAAOA,gBAA0C;AACvE,cAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,eAAO,MAAM,KAAK,eAAe,0BAA0B,mBAAmB;AAAA,MAC/E;AACA,YAAM,oBAAoB,IAAI;AAAA,QAC7B,IAAI,0BAA0B,UAAU,UAAU;AAAA,QAClD,OAAO;AAAA,UACN,OAAO,QAAQ,KAAK,eAAe,EAAE;AAAA,YACpC,CAAC,CAAC,OAAO,EAAE,MAAM;AAAA,cAChB;AAAA,cACA,IAAI;AAAA,gBACH,GAAG;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,QAAQ,aAAa,GAAG;AAAA,gBAC9B;AAAA,cAAA;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAED,YAAM,mBAAmB,IAAIC,iBAAmB,YAAY,KAAK,QAAQ,cAAc,iBAAiB;AACxG,YAAM,iBAAiB,QAAQ,CAAA,YAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QAC/D,SAAS,KAAK;AAAA,QACd;AAAA,QACA,0BAA0B,CAACD,aAAuC,WAAmB;AACpF,gBAAM,sBAAsB,KAAK,uBAAuB,OAAOA,WAAU;AACzE,iBAAO,KAAK,yBAAyB,gBAAgB,oBAAoB,QAAQ,MAAM;AAAA,QACxF;AAAA,MAAA,CACA;AAAA,IACF,CAAC;AACD,UAAM,iBAAiB,IAAA;AAAA,EACxB;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-factory.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot-factory.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { SystemMigrationArgs } from './types'\n\nexport const snapshotMigration = (sqlFactory: (args: { randomUuidFn: string }) => string) => {\n\treturn async (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) => {\n\t\tconst hasGenRandomUuid = await args.connection.query(`\n SELECT 1\n FROM pg_proc\n JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid\n WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'gen_random_uuid'\n\t\t`)\n\t\tlet randomUuidFn: string = 'uuid_generate_v4'\n\t\tif ((hasGenRandomUuid.rowCount ?? 0) > 0) {\n\t\t\trandomUuidFn = 'gen_random_uuid'\n\t\t} else {\n\t\t\tconst hasUuidGenV4 = await args.connection.query(`\n SELECT 1\n FROM pg_proc\n JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid\n WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'uuid_generate_v4'\n\t\t\t`)\n\t\t\tif (hasUuidGenV4.rowCount === 0) {\n\t\t\t\tbuilder.sql(`\n\t\t\t\tCREATE FUNCTION \"uuid_generate_v4\"() RETURNS \"uuid\"\n \t\t\tLANGUAGE \"sql\"\n \t\t\tAS $$\n \t\tSELECT OVERLAY(OVERLAY(md5(random()::TEXT || ':' || clock_timestamp()::TEXT) PLACING '4' FROM 13) PLACING\n to_hex(floor(random() * (11 - 8 + 1) + 8)::INT)::TEXT FROM 17)::UUID;\n \t$$;\n `)\n\t\t\t}\n\t\t}\n\t\tconst sql = sqlFactory({ randomUuidFn })\n\t\tbuilder.sql(sql)\n\n\t\tbuilder.sql(`DO LANGUAGE plpgsql\n$$\n\tBEGIN\n\t\tEXECUTE FORMAT('ALTER FUNCTION trigger_event_commit() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));\n\t\tEXECUTE FORMAT('ALTER FUNCTION trigger_event() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));\n\tEND\n$$`)\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,oBAAoB,CAAC,eAA2D;AAC5F,SAAO,OAAO,SAA2B,SAA6C;AACrF,UAAM,mBAAmB,MAAM,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,GAKpD;AACD,QAAI,eAAuB;AAC3B,SAAK,iBAAiB,YAAY,KAAK,GAAG;AACzC,qBAAe;AAAA,IAChB,OAAO;AACN,YAAM,eAAe,MAAM,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKhD;AACD,UAAI,aAAa,aAAa,GAAG;AAChC,gBAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAOH;AAAA,MACV;AAAA,IACD;AACA,UAAM,MAAM,WAAW,EAAE,cAAc;AACvC,YAAQ,IAAI,GAAG;AAEf,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMX;AAAA,EACF;AACD;;"}
|
|
1
|
+
{"version":3,"file":"snapshot-factory.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot-factory.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { SystemMigrationArgs } from './types.js'\n\nexport const snapshotMigration = (sqlFactory: (args: { randomUuidFn: string }) => string) => {\n\treturn async (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) => {\n\t\tconst hasGenRandomUuid = await args.connection.query(`\n SELECT 1\n FROM pg_proc\n JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid\n WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'gen_random_uuid'\n\t\t`)\n\t\tlet randomUuidFn: string = 'uuid_generate_v4'\n\t\tif ((hasGenRandomUuid.rowCount ?? 0) > 0) {\n\t\t\trandomUuidFn = 'gen_random_uuid'\n\t\t} else {\n\t\t\tconst hasUuidGenV4 = await args.connection.query(`\n SELECT 1\n FROM pg_proc\n JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid\n WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'uuid_generate_v4'\n\t\t\t`)\n\t\t\tif (hasUuidGenV4.rowCount === 0) {\n\t\t\t\tbuilder.sql(`\n\t\t\t\tCREATE FUNCTION \"uuid_generate_v4\"() RETURNS \"uuid\"\n \t\t\tLANGUAGE \"sql\"\n \t\t\tAS $$\n \t\tSELECT OVERLAY(OVERLAY(md5(random()::TEXT || ':' || clock_timestamp()::TEXT) PLACING '4' FROM 13) PLACING\n to_hex(floor(random() * (11 - 8 + 1) + 8)::INT)::TEXT FROM 17)::UUID;\n \t$$;\n `)\n\t\t\t}\n\t\t}\n\t\tconst sql = sqlFactory({ randomUuidFn })\n\t\tbuilder.sql(sql)\n\n\t\tbuilder.sql(`DO LANGUAGE plpgsql\n$$\n\tBEGIN\n\t\tEXECUTE FORMAT('ALTER FUNCTION trigger_event_commit() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));\n\t\tEXECUTE FORMAT('ALTER FUNCTION trigger_event() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));\n\tEND\n$$`)\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,oBAAoB,CAAC,eAA2D;AAC5F,SAAO,OAAO,SAA2B,SAA6C;AACrF,UAAM,mBAAmB,MAAM,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,GAKpD;AACD,QAAI,eAAuB;AAC3B,SAAK,iBAAiB,YAAY,KAAK,GAAG;AACzC,qBAAe;AAAA,IAChB,OAAO;AACN,YAAM,eAAe,MAAM,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKhD;AACD,UAAI,aAAa,aAAa,GAAG;AAChC,gBAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAOH;AAAA,MACV;AAAA,IACD;AACA,UAAM,MAAM,WAAW,EAAE,cAAc;AACvC,YAAQ,IAAI,GAAG;AAEf,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMX;AAAA,EACF;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-factory.js","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot-factory.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { SystemMigrationArgs } from './types'\n\nexport const snapshotMigration = (sqlFactory: (args: { randomUuidFn: string }) => string) => {\n\treturn async (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) => {\n\t\tconst hasGenRandomUuid = await args.connection.query(`\n SELECT 1\n FROM pg_proc\n JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid\n WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'gen_random_uuid'\n\t\t`)\n\t\tlet randomUuidFn: string = 'uuid_generate_v4'\n\t\tif ((hasGenRandomUuid.rowCount ?? 0) > 0) {\n\t\t\trandomUuidFn = 'gen_random_uuid'\n\t\t} else {\n\t\t\tconst hasUuidGenV4 = await args.connection.query(`\n SELECT 1\n FROM pg_proc\n JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid\n WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'uuid_generate_v4'\n\t\t\t`)\n\t\t\tif (hasUuidGenV4.rowCount === 0) {\n\t\t\t\tbuilder.sql(`\n\t\t\t\tCREATE FUNCTION \"uuid_generate_v4\"() RETURNS \"uuid\"\n \t\t\tLANGUAGE \"sql\"\n \t\t\tAS $$\n \t\tSELECT OVERLAY(OVERLAY(md5(random()::TEXT || ':' || clock_timestamp()::TEXT) PLACING '4' FROM 13) PLACING\n to_hex(floor(random() * (11 - 8 + 1) + 8)::INT)::TEXT FROM 17)::UUID;\n \t$$;\n `)\n\t\t\t}\n\t\t}\n\t\tconst sql = sqlFactory({ randomUuidFn })\n\t\tbuilder.sql(sql)\n\n\t\tbuilder.sql(`DO LANGUAGE plpgsql\n$$\n\tBEGIN\n\t\tEXECUTE FORMAT('ALTER FUNCTION trigger_event_commit() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));\n\t\tEXECUTE FORMAT('ALTER FUNCTION trigger_event() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));\n\tEND\n$$`)\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,oBAAoB,CAAC,eAA2D;AAC5F,SAAO,OAAO,SAA2B,SAA6C;AACrF,UAAM,mBAAmB,MAAM,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,GAKpD;AACD,QAAI,eAAuB;AAC3B,SAAK,iBAAiB,YAAY,KAAK,GAAG;AACzC,qBAAe;AAAA,IAChB,OAAO;AACN,YAAM,eAAe,MAAM,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKhD;AACD,UAAI,aAAa,aAAa,GAAG;AAChC,gBAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAOH;AAAA,MACV;AAAA,IACD;AACA,UAAM,MAAM,WAAW,EAAE,cAAc;AACvC,YAAQ,IAAI,GAAG;AAEf,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMX;AAAA,EACF;AACD;"}
|
|
1
|
+
{"version":3,"file":"snapshot-factory.js","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot-factory.ts"],"sourcesContent":["import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations'\nimport { SystemMigrationArgs } from './types.js'\n\nexport const snapshotMigration = (sqlFactory: (args: { randomUuidFn: string }) => string) => {\n\treturn async (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) => {\n\t\tconst hasGenRandomUuid = await args.connection.query(`\n SELECT 1\n FROM pg_proc\n JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid\n WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'gen_random_uuid'\n\t\t`)\n\t\tlet randomUuidFn: string = 'uuid_generate_v4'\n\t\tif ((hasGenRandomUuid.rowCount ?? 0) > 0) {\n\t\t\trandomUuidFn = 'gen_random_uuid'\n\t\t} else {\n\t\t\tconst hasUuidGenV4 = await args.connection.query(`\n SELECT 1\n FROM pg_proc\n JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid\n WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'uuid_generate_v4'\n\t\t\t`)\n\t\t\tif (hasUuidGenV4.rowCount === 0) {\n\t\t\t\tbuilder.sql(`\n\t\t\t\tCREATE FUNCTION \"uuid_generate_v4\"() RETURNS \"uuid\"\n \t\t\tLANGUAGE \"sql\"\n \t\t\tAS $$\n \t\tSELECT OVERLAY(OVERLAY(md5(random()::TEXT || ':' || clock_timestamp()::TEXT) PLACING '4' FROM 13) PLACING\n to_hex(floor(random() * (11 - 8 + 1) + 8)::INT)::TEXT FROM 17)::UUID;\n \t$$;\n `)\n\t\t\t}\n\t\t}\n\t\tconst sql = sqlFactory({ randomUuidFn })\n\t\tbuilder.sql(sql)\n\n\t\tbuilder.sql(`DO LANGUAGE plpgsql\n$$\n\tBEGIN\n\t\tEXECUTE FORMAT('ALTER FUNCTION trigger_event_commit() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));\n\t\tEXECUTE FORMAT('ALTER FUNCTION trigger_event() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));\n\tEND\n$$`)\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,oBAAoB,CAAC,eAA2D;AAC5F,SAAO,OAAO,SAA2B,SAA6C;AACrF,UAAM,mBAAmB,MAAM,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,GAKpD;AACD,QAAI,eAAuB;AAC3B,SAAK,iBAAiB,YAAY,KAAK,GAAG;AACzC,qBAAe;AAAA,IAChB,OAAO;AACN,YAAM,eAAe,MAAM,KAAK,WAAW,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKhD;AACD,UAAI,aAAa,aAAa,GAAG;AAChC,gBAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAOH;AAAA,MACV;AAAA,IACD;AACA,UAAM,MAAM,WAAW,EAAE,cAAc;AACvC,YAAQ,IAAI,GAAG;AAEf,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMX;AAAA,EACF;AACD;"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const snapshotFactory = require("./snapshot-factory.cjs");
|
|
3
3
|
const snapshot = snapshotFactory.snapshotMigration(({ randomUuidFn }) => `
|
|
4
|
-
CREATE DOMAIN "event_data_type" AS "text"
|
|
5
|
-
CONSTRAINT "event_data_type_check" CHECK ((VALUE = ANY (ARRAY['create'::"text", 'update'::"text", 'delete'::"text"])));
|
|
4
|
+
CREATE DOMAIN "event_data_type" AS "text";
|
|
6
5
|
CREATE DOMAIN "event_type" AS "text"
|
|
7
6
|
CONSTRAINT "event_type_check" CHECK ((VALUE = ANY (ARRAY['init'::"text", 'create'::"text", 'update'::"text", 'delete'::"text", 'run_migration'::"text"])));
|
|
8
7
|
CREATE TYPE "schema_migration_type" AS ENUM (
|
|
@@ -111,8 +110,8 @@ $$;
|
|
|
111
110
|
CREATE TABLE "event_data" (
|
|
112
111
|
"id" "uuid" NOT NULL,
|
|
113
112
|
"type" "event_data_type" NOT NULL,
|
|
114
|
-
"table_name" "text"
|
|
115
|
-
"row_ids" "jsonb"
|
|
113
|
+
"table_name" "text",
|
|
114
|
+
"row_ids" "jsonb",
|
|
116
115
|
"values" "jsonb",
|
|
117
116
|
"created_at" timestamp with time zone DEFAULT "clock_timestamp"() NOT NULL,
|
|
118
117
|
"schema_id" integer NOT NULL,
|
|
@@ -149,6 +148,8 @@ CREATE TABLE "stage_transaction" (
|
|
|
149
148
|
);
|
|
150
149
|
ALTER TABLE ONLY "event_data"
|
|
151
150
|
ADD CONSTRAINT "event_data_pkey" PRIMARY KEY ("id");
|
|
151
|
+
ALTER DOMAIN "event_data_type"
|
|
152
|
+
ADD CONSTRAINT "event_data_type_check" CHECK ((VALUE = ANY (ARRAY['create'::"text", 'update'::"text", 'delete'::"text", 'truncate'::"text"]))) NOT VALID;
|
|
152
153
|
ALTER TABLE ONLY "schema_migration"
|
|
153
154
|
ADD CONSTRAINT "schema_migration_name_key" UNIQUE ("name");
|
|
154
155
|
ALTER TABLE ONLY "schema_migration"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot.ts"],"sourcesContent":["import { snapshotMigration } from './snapshot-factory'\nexport default snapshotMigration(({ randomUuidFn }) => `\nCREATE DOMAIN \"event_data_type\" AS \"text\"
|
|
1
|
+
{"version":3,"file":"snapshot.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot.ts"],"sourcesContent":["import { snapshotMigration } from './snapshot-factory.js'\nexport default snapshotMigration(({ randomUuidFn }) => `\nCREATE DOMAIN \"event_data_type\" AS \"text\";\nCREATE DOMAIN \"event_type\" AS \"text\"\n\tCONSTRAINT \"event_type_check\" CHECK ((VALUE = ANY (ARRAY['init'::\"text\", 'create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'run_migration'::\"text\"])));\nCREATE TYPE \"schema_migration_type\" AS ENUM (\n 'schema',\n 'content'\n);\nCREATE TYPE \"schema_single\" AS ENUM (\n 'single'\n);\nCREATE FUNCTION \"trigger_event\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\n\t\tDECLARE new_event_type TEXT;\n\t\tDECLARE table_name TEXT;\n\t\tDECLARE values JSONB;\n\t\tDECLARE update_diff JSONB;\n\t\tDECLARE primary_values JSONB;\n\t\tDECLARE old_row JSONB;\n\t\tDECLARE new_row JSONB;\n\t\tBEGIN\n\t\t\told_row := CASE WHEN TG_OP = 'DELETE' OR TG_OP = 'UPDATE' THEN TO_JSONB(old) ELSE NULL END;\n\t\t\tnew_row := CASE WHEN TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN TO_JSONB(new) ELSE NULL END;\n\t\t\tprimary_values := (\n\t\t\t\tSELECT JSONB_AGG(value ORDER BY array_position(TG_ARGV, key))\n\t\t\t\tFROM JSONB_EACH(COALESCE(old_row, new_row))\n\t\t\t\tWHERE key = ANY (TG_ARGV)\n\t\t\t);\n\t\t\ttable_name := tg_table_name;\n\t\t\tCASE TG_OP\n\t\t\t\tWHEN 'INSERT' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'create';\n\t\t\t\t\tvalues := COALESCE(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(key, value)\n \t\t\t\t\t\t FROM JSONB_EACH(new_row)\n \t\t\t\t\t\t WHERE NOT (key = ANY (TG_ARGV))\n \t\t\t\t\t\t),\n \t\t\t\t\t\tJSONB_BUILD_OBJECT()\n \t\t\t\t\t);\n\t\t\t\tEND;\n\t\t\t\tWHEN 'UPDATE' THEN BEGIN\n\t\t\t\t\tupdate_diff := (\n\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(COALESCE(n.key, o.key), n.value)\n\t\t\t\t\t\tFROM JSONB_EACH(old_row) o\n \t\t\t\t\t\tFULL OUTER JOIN JSONB_EACH(new_row) n ON n.key = o.key\n\t\t\t\t\t\tWHERE n.value IS DISTINCT FROM o.value\n\t\t\t\t\t);\n\t\t\t\t\tIF (SELECT COUNT(*) FROM JSONB_OBJECT_KEYS(update_diff)) = 0 THEN\n\t\t\t\t\t\tRETURN NULL;\n\t\t\t\t\tEND IF;\n\t\t\t\t\tnew_event_type := 'update';\n\t\t\t\t\tvalues := update_diff;\n\t\t\t\tEND;\n\t\t\t\tWHEN 'DELETE' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'delete';\n\t\t\t\tEND;\n\t\t\t\tELSE RAISE\n\t\t\t\t\tEXCEPTION 'Unknown TG_OP value %', TG_OP;\n\t\t\tEND CASE;\n\t\t\tCASE WHEN NULLIF(CURRENT_SETTING('system.schema_id', true), '') IS NULL THEN\n\t\t\t\tPERFORM SET_CONFIG('system.schema_id', (select MAX(\"id\")::TEXT from schema_migration), TRUE);\n\t\t\tELSE\n\t\t\t\t-- do nothing\n\t\t\tEND CASE;\n\t\t\tINSERT INTO \"event_data\" (\"id\", \"type\", \"table_name\", \"row_ids\", \"values\", \"created_at\", schema_id, identity_id)\n\t\t\tVALUES (\n\t\t\t\t\"${randomUuidFn}\"(),\n\t\t\t\tnew_event_type,\n\t\t\t\ttable_name,\n\t\t\t\tprimary_values,\n\t\t\t\tvalues,\n\t\t\t\tCLOCK_TIMESTAMP(),\n\t\t\t\tCURRENT_SETTING('system.schema_id')::INT,\n\t\t\t\tCOALESCE(\n\t\t\t\t\tCURRENT_SETTING('tenant.identity_id'::TEXT, TRUE)::UUID,\n \t\t\t\t\t'00000000-0000-0000-0000-000000000000'::UUID)\n \t\t\t\t);\n\t\t\tRETURN NULL;\n\t\tEND;\n\t\t$$;\nCREATE FUNCTION \"trigger_event_commit\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\nBEGIN\n\tPERFORM PG_ADVISORY_XACT_LOCK(5218230332970456493); -- well-known random number\n\tCASE WHEN\n\t\t\tNULLIF(CURRENT_SETTING('system.transaction_id', TRUE), '') IS NOT NULL\n\t\t\tAND NULLIF(CURRENT_SETTING('system.transaction_inserted', TRUE), '') IS NULL\n\t\tTHEN\n\t\t\tINSERT INTO stage_transaction(transaction_id, stage_id, applied_at)\n\t\t\tVALUES (CURRENT_SETTING('system.transaction_id')::UUID,\n\t\t\t\t\t(\n\t\t\t\t\t\tSELECT id\n\t\t\t\t\t\tFROM stage\n\t\t\t\t\t\tWHERE schema = TG_TABLE_SCHEMA\n\t\t\t\t\t),\n\t\t\t\t\tCLOCK_TIMESTAMP())\n\t\t\tON CONFLICT DO NOTHING;\n\t\t\tPERFORM SET_CONFIG('system.transaction_inserted', '1', TRUE);\n\t\tELSE\n\t\t-- do nothing\n\t\tEND CASE;\n\tRETURN NULL;\nEND\n$$;\nCREATE TABLE \"event_data\" (\n \"id\" \"uuid\" NOT NULL,\n \"type\" \"event_data_type\" NOT NULL,\n \"table_name\" \"text\",\n \"row_ids\" \"jsonb\",\n \"values\" \"jsonb\",\n \"created_at\" timestamp with time zone DEFAULT \"clock_timestamp\"() NOT NULL,\n \"schema_id\" integer NOT NULL,\n \"identity_id\" \"uuid\" NOT NULL,\n \"transaction_id\" \"uuid\" DEFAULT COALESCE((NULLIF(\"current_setting\"('system.transaction_id'::\"text\", true), ''::\"text\"))::\"uuid\", (\"set_config\"('system.transaction_id'::\"text\", (\"${randomUuidFn}\"())::\"text\", true))::\"uuid\") NOT NULL\n);\nCREATE TABLE \"schema\" (\n \"id\" \"schema_single\" DEFAULT 'single'::\"schema_single\" NOT NULL,\n \"schema\" \"json\" NOT NULL,\n \"updated_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"checksum\" character(32) NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"migration_id\" integer NOT NULL\n);\nCREATE TABLE \"schema_migration\" (\n \"id\" integer NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"name\" character varying(255) NOT NULL,\n \"migration\" \"json\" NOT NULL,\n \"checksum\" character(32),\n \"executed_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"type\" \"schema_migration_type\" DEFAULT 'schema'::\"schema_migration_type\" NOT NULL\n);\nCREATE TABLE \"stage\" (\n \"id\" \"uuid\" NOT NULL,\n \"name\" \"text\" NOT NULL,\n \"slug\" \"text\" NOT NULL,\n \"schema\" \"text\" NOT NULL\n);\nCREATE TABLE \"stage_transaction\" (\n \"transaction_id\" \"uuid\" NOT NULL,\n \"stage_id\" \"uuid\" NOT NULL,\n \"applied_at\" timestamp with time zone NOT NULL\n);\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_pkey\" PRIMARY KEY (\"id\");\nALTER DOMAIN \"event_data_type\"\n ADD CONSTRAINT \"event_data_type_check\" CHECK ((VALUE = ANY (ARRAY['create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'truncate'::\"text\"]))) NOT VALID;\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_name_key\" UNIQUE (\"name\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_version_key\" UNIQUE (\"version\");\nALTER TABLE ONLY \"schema\"\n ADD CONSTRAINT \"schema_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_schema_key\" UNIQUE (\"schema\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_slug_key\" UNIQUE (\"slug\");\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_pkey\" PRIMARY KEY (\"transaction_id\", \"stage_id\");\nCREATE INDEX \"event_data_created\" ON \"event_data\" USING \"btree\" (\"created_at\");\nCREATE INDEX \"system_event2_table_name\" ON \"event_data\" USING \"btree\" (\"table_name\");\nCREATE INDEX \"system_event2_transaction\" ON \"event_data\" USING \"btree\" (\"transaction_id\");\nCREATE INDEX \"system_event2_type\" ON \"event_data\" USING \"btree\" (\"type\");\nCREATE INDEX \"system_event_data_row_id_0\" ON \"event_data\" USING \"btree\" (((\"row_ids\" -> 0)));\nCREATE INDEX \"system_event_data_row_id_1\" ON \"event_data\" USING \"btree\" (((\"row_ids\" -> 1)));\nCREATE INDEX \"system_schema_migration_version\" ON \"schema_migration\" USING \"btree\" (\"version\");\nCREATE INDEX \"transaction_applied\" ON \"stage_transaction\" USING \"btree\" (\"applied_at\");\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_schema_id_fkey\" FOREIGN KEY (\"schema_id\") REFERENCES \"schema_migration\"(\"id\");\nALTER TABLE ONLY \"schema\"\n ADD CONSTRAINT \"schema_migration_id_fkey\" FOREIGN KEY (\"migration_id\") REFERENCES \"schema_migration\"(\"id\") DEFERRABLE INITIALLY DEFERRED;\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_stage_id_fkey\" FOREIGN KEY (\"stage_id\") REFERENCES \"stage\"(\"id\") ON DELETE CASCADE;\n`)\n"],"names":["snapshotMigration"],"mappings":";;AACA,MAAA,WAAeA,kCAAkB,CAAC,EAAE,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAoEhD,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wLAgDqK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAgEnM;;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { snapshotMigration } from "./snapshot-factory.js";
|
|
2
2
|
const snapshot = snapshotMigration(({ randomUuidFn }) => `
|
|
3
|
-
CREATE DOMAIN "event_data_type" AS "text"
|
|
4
|
-
CONSTRAINT "event_data_type_check" CHECK ((VALUE = ANY (ARRAY['create'::"text", 'update'::"text", 'delete'::"text"])));
|
|
3
|
+
CREATE DOMAIN "event_data_type" AS "text";
|
|
5
4
|
CREATE DOMAIN "event_type" AS "text"
|
|
6
5
|
CONSTRAINT "event_type_check" CHECK ((VALUE = ANY (ARRAY['init'::"text", 'create'::"text", 'update'::"text", 'delete'::"text", 'run_migration'::"text"])));
|
|
7
6
|
CREATE TYPE "schema_migration_type" AS ENUM (
|
|
@@ -110,8 +109,8 @@ $$;
|
|
|
110
109
|
CREATE TABLE "event_data" (
|
|
111
110
|
"id" "uuid" NOT NULL,
|
|
112
111
|
"type" "event_data_type" NOT NULL,
|
|
113
|
-
"table_name" "text"
|
|
114
|
-
"row_ids" "jsonb"
|
|
112
|
+
"table_name" "text",
|
|
113
|
+
"row_ids" "jsonb",
|
|
115
114
|
"values" "jsonb",
|
|
116
115
|
"created_at" timestamp with time zone DEFAULT "clock_timestamp"() NOT NULL,
|
|
117
116
|
"schema_id" integer NOT NULL,
|
|
@@ -148,6 +147,8 @@ CREATE TABLE "stage_transaction" (
|
|
|
148
147
|
);
|
|
149
148
|
ALTER TABLE ONLY "event_data"
|
|
150
149
|
ADD CONSTRAINT "event_data_pkey" PRIMARY KEY ("id");
|
|
150
|
+
ALTER DOMAIN "event_data_type"
|
|
151
|
+
ADD CONSTRAINT "event_data_type_check" CHECK ((VALUE = ANY (ARRAY['create'::"text", 'update'::"text", 'delete'::"text", 'truncate'::"text"]))) NOT VALID;
|
|
151
152
|
ALTER TABLE ONLY "schema_migration"
|
|
152
153
|
ADD CONSTRAINT "schema_migration_name_key" UNIQUE ("name");
|
|
153
154
|
ALTER TABLE ONLY "schema_migration"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot.ts"],"sourcesContent":["import { snapshotMigration } from './snapshot-factory'\nexport default snapshotMigration(({ randomUuidFn }) => `\nCREATE DOMAIN \"event_data_type\" AS \"text\"
|
|
1
|
+
{"version":3,"file":"snapshot.js","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot.ts"],"sourcesContent":["import { snapshotMigration } from './snapshot-factory.js'\nexport default snapshotMigration(({ randomUuidFn }) => `\nCREATE DOMAIN \"event_data_type\" AS \"text\";\nCREATE DOMAIN \"event_type\" AS \"text\"\n\tCONSTRAINT \"event_type_check\" CHECK ((VALUE = ANY (ARRAY['init'::\"text\", 'create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'run_migration'::\"text\"])));\nCREATE TYPE \"schema_migration_type\" AS ENUM (\n 'schema',\n 'content'\n);\nCREATE TYPE \"schema_single\" AS ENUM (\n 'single'\n);\nCREATE FUNCTION \"trigger_event\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\n\t\tDECLARE new_event_type TEXT;\n\t\tDECLARE table_name TEXT;\n\t\tDECLARE values JSONB;\n\t\tDECLARE update_diff JSONB;\n\t\tDECLARE primary_values JSONB;\n\t\tDECLARE old_row JSONB;\n\t\tDECLARE new_row JSONB;\n\t\tBEGIN\n\t\t\told_row := CASE WHEN TG_OP = 'DELETE' OR TG_OP = 'UPDATE' THEN TO_JSONB(old) ELSE NULL END;\n\t\t\tnew_row := CASE WHEN TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN TO_JSONB(new) ELSE NULL END;\n\t\t\tprimary_values := (\n\t\t\t\tSELECT JSONB_AGG(value ORDER BY array_position(TG_ARGV, key))\n\t\t\t\tFROM JSONB_EACH(COALESCE(old_row, new_row))\n\t\t\t\tWHERE key = ANY (TG_ARGV)\n\t\t\t);\n\t\t\ttable_name := tg_table_name;\n\t\t\tCASE TG_OP\n\t\t\t\tWHEN 'INSERT' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'create';\n\t\t\t\t\tvalues := COALESCE(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(key, value)\n \t\t\t\t\t\t FROM JSONB_EACH(new_row)\n \t\t\t\t\t\t WHERE NOT (key = ANY (TG_ARGV))\n \t\t\t\t\t\t),\n \t\t\t\t\t\tJSONB_BUILD_OBJECT()\n \t\t\t\t\t);\n\t\t\t\tEND;\n\t\t\t\tWHEN 'UPDATE' THEN BEGIN\n\t\t\t\t\tupdate_diff := (\n\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(COALESCE(n.key, o.key), n.value)\n\t\t\t\t\t\tFROM JSONB_EACH(old_row) o\n \t\t\t\t\t\tFULL OUTER JOIN JSONB_EACH(new_row) n ON n.key = o.key\n\t\t\t\t\t\tWHERE n.value IS DISTINCT FROM o.value\n\t\t\t\t\t);\n\t\t\t\t\tIF (SELECT COUNT(*) FROM JSONB_OBJECT_KEYS(update_diff)) = 0 THEN\n\t\t\t\t\t\tRETURN NULL;\n\t\t\t\t\tEND IF;\n\t\t\t\t\tnew_event_type := 'update';\n\t\t\t\t\tvalues := update_diff;\n\t\t\t\tEND;\n\t\t\t\tWHEN 'DELETE' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'delete';\n\t\t\t\tEND;\n\t\t\t\tELSE RAISE\n\t\t\t\t\tEXCEPTION 'Unknown TG_OP value %', TG_OP;\n\t\t\tEND CASE;\n\t\t\tCASE WHEN NULLIF(CURRENT_SETTING('system.schema_id', true), '') IS NULL THEN\n\t\t\t\tPERFORM SET_CONFIG('system.schema_id', (select MAX(\"id\")::TEXT from schema_migration), TRUE);\n\t\t\tELSE\n\t\t\t\t-- do nothing\n\t\t\tEND CASE;\n\t\t\tINSERT INTO \"event_data\" (\"id\", \"type\", \"table_name\", \"row_ids\", \"values\", \"created_at\", schema_id, identity_id)\n\t\t\tVALUES (\n\t\t\t\t\"${randomUuidFn}\"(),\n\t\t\t\tnew_event_type,\n\t\t\t\ttable_name,\n\t\t\t\tprimary_values,\n\t\t\t\tvalues,\n\t\t\t\tCLOCK_TIMESTAMP(),\n\t\t\t\tCURRENT_SETTING('system.schema_id')::INT,\n\t\t\t\tCOALESCE(\n\t\t\t\t\tCURRENT_SETTING('tenant.identity_id'::TEXT, TRUE)::UUID,\n \t\t\t\t\t'00000000-0000-0000-0000-000000000000'::UUID)\n \t\t\t\t);\n\t\t\tRETURN NULL;\n\t\tEND;\n\t\t$$;\nCREATE FUNCTION \"trigger_event_commit\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\nBEGIN\n\tPERFORM PG_ADVISORY_XACT_LOCK(5218230332970456493); -- well-known random number\n\tCASE WHEN\n\t\t\tNULLIF(CURRENT_SETTING('system.transaction_id', TRUE), '') IS NOT NULL\n\t\t\tAND NULLIF(CURRENT_SETTING('system.transaction_inserted', TRUE), '') IS NULL\n\t\tTHEN\n\t\t\tINSERT INTO stage_transaction(transaction_id, stage_id, applied_at)\n\t\t\tVALUES (CURRENT_SETTING('system.transaction_id')::UUID,\n\t\t\t\t\t(\n\t\t\t\t\t\tSELECT id\n\t\t\t\t\t\tFROM stage\n\t\t\t\t\t\tWHERE schema = TG_TABLE_SCHEMA\n\t\t\t\t\t),\n\t\t\t\t\tCLOCK_TIMESTAMP())\n\t\t\tON CONFLICT DO NOTHING;\n\t\t\tPERFORM SET_CONFIG('system.transaction_inserted', '1', TRUE);\n\t\tELSE\n\t\t-- do nothing\n\t\tEND CASE;\n\tRETURN NULL;\nEND\n$$;\nCREATE TABLE \"event_data\" (\n \"id\" \"uuid\" NOT NULL,\n \"type\" \"event_data_type\" NOT NULL,\n \"table_name\" \"text\",\n \"row_ids\" \"jsonb\",\n \"values\" \"jsonb\",\n \"created_at\" timestamp with time zone DEFAULT \"clock_timestamp\"() NOT NULL,\n \"schema_id\" integer NOT NULL,\n \"identity_id\" \"uuid\" NOT NULL,\n \"transaction_id\" \"uuid\" DEFAULT COALESCE((NULLIF(\"current_setting\"('system.transaction_id'::\"text\", true), ''::\"text\"))::\"uuid\", (\"set_config\"('system.transaction_id'::\"text\", (\"${randomUuidFn}\"())::\"text\", true))::\"uuid\") NOT NULL\n);\nCREATE TABLE \"schema\" (\n \"id\" \"schema_single\" DEFAULT 'single'::\"schema_single\" NOT NULL,\n \"schema\" \"json\" NOT NULL,\n \"updated_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"checksum\" character(32) NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"migration_id\" integer NOT NULL\n);\nCREATE TABLE \"schema_migration\" (\n \"id\" integer NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"name\" character varying(255) NOT NULL,\n \"migration\" \"json\" NOT NULL,\n \"checksum\" character(32),\n \"executed_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"type\" \"schema_migration_type\" DEFAULT 'schema'::\"schema_migration_type\" NOT NULL\n);\nCREATE TABLE \"stage\" (\n \"id\" \"uuid\" NOT NULL,\n \"name\" \"text\" NOT NULL,\n \"slug\" \"text\" NOT NULL,\n \"schema\" \"text\" NOT NULL\n);\nCREATE TABLE \"stage_transaction\" (\n \"transaction_id\" \"uuid\" NOT NULL,\n \"stage_id\" \"uuid\" NOT NULL,\n \"applied_at\" timestamp with time zone NOT NULL\n);\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_pkey\" PRIMARY KEY (\"id\");\nALTER DOMAIN \"event_data_type\"\n ADD CONSTRAINT \"event_data_type_check\" CHECK ((VALUE = ANY (ARRAY['create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'truncate'::\"text\"]))) NOT VALID;\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_name_key\" UNIQUE (\"name\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_version_key\" UNIQUE (\"version\");\nALTER TABLE ONLY \"schema\"\n ADD CONSTRAINT \"schema_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_schema_key\" UNIQUE (\"schema\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_slug_key\" UNIQUE (\"slug\");\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_pkey\" PRIMARY KEY (\"transaction_id\", \"stage_id\");\nCREATE INDEX \"event_data_created\" ON \"event_data\" USING \"btree\" (\"created_at\");\nCREATE INDEX \"system_event2_table_name\" ON \"event_data\" USING \"btree\" (\"table_name\");\nCREATE INDEX \"system_event2_transaction\" ON \"event_data\" USING \"btree\" (\"transaction_id\");\nCREATE INDEX \"system_event2_type\" ON \"event_data\" USING \"btree\" (\"type\");\nCREATE INDEX \"system_event_data_row_id_0\" ON \"event_data\" USING \"btree\" (((\"row_ids\" -> 0)));\nCREATE INDEX \"system_event_data_row_id_1\" ON \"event_data\" USING \"btree\" (((\"row_ids\" -> 1)));\nCREATE INDEX \"system_schema_migration_version\" ON \"schema_migration\" USING \"btree\" (\"version\");\nCREATE INDEX \"transaction_applied\" ON \"stage_transaction\" USING \"btree\" (\"applied_at\");\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_schema_id_fkey\" FOREIGN KEY (\"schema_id\") REFERENCES \"schema_migration\"(\"id\");\nALTER TABLE ONLY \"schema\"\n ADD CONSTRAINT \"schema_migration_id_fkey\" FOREIGN KEY (\"migration_id\") REFERENCES \"schema_migration\"(\"id\") DEFERRABLE INITIALLY DEFERRED;\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_stage_id_fkey\" FOREIGN KEY (\"stage_id\") REFERENCES \"stage\"(\"id\") ON DELETE CASCADE;\n`)\n"],"names":[],"mappings":";AACA,MAAA,WAAe,kBAAkB,CAAC,EAAE,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAoEhD,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wLAgDqK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAgEnM;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectInitializer.cjs","sources":["../../../../../packages/engine-system-api/src/model/ProjectInitializer.ts"],"sourcesContent":["import { ProjectConfig } from '../types'\nimport { StageCreator } from './stages'\nimport { DatabaseContext } from './database'\nimport { Connection, retryTransaction } from '@contember/database'\nimport { FingerCrossedLoggerHandler, Logger } from '@contember/logger'\nimport { SystemMigrationsRunner } from '../migrations'\n\nexport class ProjectInitializer {\n\tconstructor(\n\t\tprivate readonly stageCreator: StageCreator,\n\t\tprivate readonly migrationsRunner: SystemMigrationsRunner,\n\t\tprivate readonly databaseContext: DatabaseContext,\n\t\tprivate readonly project: ProjectConfig,\n\t) {}\n\n\tpublic async initialize(logger: Logger) {\n\t\treturn await logger.scope(\n\t\t\tasync initLogger => {\n\t\t\t\tinitLogger.debug('Executing system schema migrations')\n\t\t\t\tawait this.migrationsRunner.run(initLogger)\n\t\t\t\tconst dbContext = this.databaseContext\n\t\t\t\tawait retryTransaction(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tdbContext.transaction(async trx => {\n\t\t\t\t\t\t\tawait this.initStages(trx, logger)\n\t\t\t\t\t\t}),\n\t\t\t\t\tmessage => initLogger.warn(message),\n\t\t\t\t)\n\t\t\t\tif (dbContext.client.connection instanceof Connection) {\n\t\t\t\t\tawait dbContext.client.connection.clearPool()\n\t\t\t\t}\n\t\t\t},\n\t\t\t{},\n\t\t\t{ handler: FingerCrossedLoggerHandler.factory() },\n\t\t)\n\t}\n\n\tprivate async initStages(db: DatabaseContext<Connection.TransactionLike>, logger: Logger) {\n\t\tlogger.debug(`Creating stages`)\n\t\tfor (const stage of this.project.stages) {\n\t\t\tconst created = await this.stageCreator.createStage(db, stage)\n\t\t\tif (created) {\n\t\t\t\tlogger.warn(`Created stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t} else {\n\t\t\t\tlogger.debug(`Updated stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["logger","retryTransaction","Connection","FingerCrossedLoggerHandler"],"mappings":";;;;AAOO,MAAM,mBAAmB;AAAA,EAC/B,YACkB,cACA,kBACA,iBACA,SAChB;AAJgB,SAAA,eAAA;AACA,SAAA,mBAAA;AACA,SAAA,kBAAA;AACA,SAAA,UAAA;AAAA,EACf;AAAA,EAEH,MAAa,WAAWA,UAAgB;AACvC,WAAO,MAAMA,SAAO;AAAA,MACnB,OAAM,eAAc;AACnB,mBAAW,MAAM,oCAAoC;AACrD,cAAM,KAAK,iBAAiB,IAAI,UAAU;AAC1C,cAAM,YAAY,KAAK;AACvB,cAAMC,SAAAA;AAAAA,UACL,MACC,UAAU,YAAY,OAAM,QAAO;AAClC,kBAAM,KAAK,WAAW,KAAKD,QAAM;AAAA,UAClC,CAAC;AAAA,UACF,CAAA,YAAW,WAAW,KAAK,OAAO;AAAA,QAAA;AAEnC,YAAI,UAAU,OAAO,sBAAsBE,qBAAY;AACtD,gBAAM,UAAU,OAAO,WAAW,UAAA;AAAA,QACnC;AAAA,MACD;AAAA,MACA,CAAA;AAAA,MACA,EAAE,SAASC,OAAAA,2BAA2B,QAAA,EAAQ;AAAA,IAAE;AAAA,EAElD;AAAA,EAEA,MAAc,WAAW,IAAiDH,SAAgB;AACzF,IAAAA,QAAO,MAAM,iBAAiB;AAC9B,eAAW,SAAS,KAAK,QAAQ,QAAQ;AACxC,YAAM,UAAU,MAAM,KAAK,aAAa,YAAY,IAAI,KAAK;AAC7D,UAAI,SAAS;AACZ,QAAAA,QAAO,KAAK,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MACjE,OAAO;AACN,QAAAA,QAAO,MAAM,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAClE;AAAA,IACD;AAAA,EACD;AACD;;"}
|
|
1
|
+
{"version":3,"file":"ProjectInitializer.cjs","sources":["../../../../../packages/engine-system-api/src/model/ProjectInitializer.ts"],"sourcesContent":["import { ProjectConfig } from '../types.js'\nimport { StageCreator } from './stages/index.js'\nimport { DatabaseContext } from './database/index.js'\nimport { Connection, retryTransaction } from '@contember/database'\nimport { FingerCrossedLoggerHandler, Logger } from '@contember/logger'\nimport { SystemMigrationsRunner } from '../migrations/index.js'\n\nexport class ProjectInitializer {\n\tconstructor(\n\t\tprivate readonly stageCreator: StageCreator,\n\t\tprivate readonly migrationsRunner: SystemMigrationsRunner,\n\t\tprivate readonly databaseContext: DatabaseContext,\n\t\tprivate readonly project: ProjectConfig,\n\t) {}\n\n\tpublic async initialize(logger: Logger) {\n\t\treturn await logger.scope(\n\t\t\tasync initLogger => {\n\t\t\t\tinitLogger.debug('Executing system schema migrations')\n\t\t\t\tawait this.migrationsRunner.run(initLogger)\n\t\t\t\tconst dbContext = this.databaseContext\n\t\t\t\tawait retryTransaction(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tdbContext.transaction(async trx => {\n\t\t\t\t\t\t\tawait this.initStages(trx, logger)\n\t\t\t\t\t\t}),\n\t\t\t\t\tmessage => initLogger.warn(message),\n\t\t\t\t)\n\t\t\t\tif (dbContext.client.connection instanceof Connection) {\n\t\t\t\t\tawait dbContext.client.connection.clearPool()\n\t\t\t\t}\n\t\t\t},\n\t\t\t{},\n\t\t\t{ handler: FingerCrossedLoggerHandler.factory() },\n\t\t)\n\t}\n\n\tprivate async initStages(db: DatabaseContext<Connection.TransactionLike>, logger: Logger) {\n\t\tlogger.debug(`Creating stages`)\n\t\tfor (const stage of this.project.stages) {\n\t\t\tconst created = await this.stageCreator.createStage(db, stage)\n\t\t\tif (created) {\n\t\t\t\tlogger.warn(`Created stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t} else {\n\t\t\t\tlogger.debug(`Updated stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["logger","retryTransaction","Connection","FingerCrossedLoggerHandler"],"mappings":";;;;AAOO,MAAM,mBAAmB;AAAA,EAC/B,YACkB,cACA,kBACA,iBACA,SAChB;AAJgB,SAAA,eAAA;AACA,SAAA,mBAAA;AACA,SAAA,kBAAA;AACA,SAAA,UAAA;AAAA,EACf;AAAA,EAEH,MAAa,WAAWA,UAAgB;AACvC,WAAO,MAAMA,SAAO;AAAA,MACnB,OAAM,eAAc;AACnB,mBAAW,MAAM,oCAAoC;AACrD,cAAM,KAAK,iBAAiB,IAAI,UAAU;AAC1C,cAAM,YAAY,KAAK;AACvB,cAAMC,SAAAA;AAAAA,UACL,MACC,UAAU,YAAY,OAAM,QAAO;AAClC,kBAAM,KAAK,WAAW,KAAKD,QAAM;AAAA,UAClC,CAAC;AAAA,UACF,CAAA,YAAW,WAAW,KAAK,OAAO;AAAA,QAAA;AAEnC,YAAI,UAAU,OAAO,sBAAsBE,qBAAY;AACtD,gBAAM,UAAU,OAAO,WAAW,UAAA;AAAA,QACnC;AAAA,MACD;AAAA,MACA,CAAA;AAAA,MACA,EAAE,SAASC,OAAAA,2BAA2B,QAAA,EAAQ;AAAA,IAAE;AAAA,EAElD;AAAA,EAEA,MAAc,WAAW,IAAiDH,SAAgB;AACzF,IAAAA,QAAO,MAAM,iBAAiB;AAC9B,eAAW,SAAS,KAAK,QAAQ,QAAQ;AACxC,YAAM,UAAU,MAAM,KAAK,aAAa,YAAY,IAAI,KAAK;AAC7D,UAAI,SAAS;AACZ,QAAAA,QAAO,KAAK,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MACjE,OAAO;AACN,QAAAA,QAAO,MAAM,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAClE;AAAA,IACD;AAAA,EACD;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectInitializer.js","sources":["../../../../../packages/engine-system-api/src/model/ProjectInitializer.ts"],"sourcesContent":["import { ProjectConfig } from '../types'\nimport { StageCreator } from './stages'\nimport { DatabaseContext } from './database'\nimport { Connection, retryTransaction } from '@contember/database'\nimport { FingerCrossedLoggerHandler, Logger } from '@contember/logger'\nimport { SystemMigrationsRunner } from '../migrations'\n\nexport class ProjectInitializer {\n\tconstructor(\n\t\tprivate readonly stageCreator: StageCreator,\n\t\tprivate readonly migrationsRunner: SystemMigrationsRunner,\n\t\tprivate readonly databaseContext: DatabaseContext,\n\t\tprivate readonly project: ProjectConfig,\n\t) {}\n\n\tpublic async initialize(logger: Logger) {\n\t\treturn await logger.scope(\n\t\t\tasync initLogger => {\n\t\t\t\tinitLogger.debug('Executing system schema migrations')\n\t\t\t\tawait this.migrationsRunner.run(initLogger)\n\t\t\t\tconst dbContext = this.databaseContext\n\t\t\t\tawait retryTransaction(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tdbContext.transaction(async trx => {\n\t\t\t\t\t\t\tawait this.initStages(trx, logger)\n\t\t\t\t\t\t}),\n\t\t\t\t\tmessage => initLogger.warn(message),\n\t\t\t\t)\n\t\t\t\tif (dbContext.client.connection instanceof Connection) {\n\t\t\t\t\tawait dbContext.client.connection.clearPool()\n\t\t\t\t}\n\t\t\t},\n\t\t\t{},\n\t\t\t{ handler: FingerCrossedLoggerHandler.factory() },\n\t\t)\n\t}\n\n\tprivate async initStages(db: DatabaseContext<Connection.TransactionLike>, logger: Logger) {\n\t\tlogger.debug(`Creating stages`)\n\t\tfor (const stage of this.project.stages) {\n\t\t\tconst created = await this.stageCreator.createStage(db, stage)\n\t\t\tif (created) {\n\t\t\t\tlogger.warn(`Created stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t} else {\n\t\t\t\tlogger.debug(`Updated stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,mBAAmB;AAAA,EAC/B,YACkB,cACA,kBACA,iBACA,SAChB;AAJgB,SAAA,eAAA;AACA,SAAA,mBAAA;AACA,SAAA,kBAAA;AACA,SAAA,UAAA;AAAA,EACf;AAAA,EAEH,MAAa,WAAW,QAAgB;AACvC,WAAO,MAAM,OAAO;AAAA,MACnB,OAAM,eAAc;AACnB,mBAAW,MAAM,oCAAoC;AACrD,cAAM,KAAK,iBAAiB,IAAI,UAAU;AAC1C,cAAM,YAAY,KAAK;AACvB,cAAM;AAAA,UACL,MACC,UAAU,YAAY,OAAM,QAAO;AAClC,kBAAM,KAAK,WAAW,KAAK,MAAM;AAAA,UAClC,CAAC;AAAA,UACF,CAAA,YAAW,WAAW,KAAK,OAAO;AAAA,QAAA;AAEnC,YAAI,UAAU,OAAO,sBAAsB,YAAY;AACtD,gBAAM,UAAU,OAAO,WAAW,UAAA;AAAA,QACnC;AAAA,MACD;AAAA,MACA,CAAA;AAAA,MACA,EAAE,SAAS,2BAA2B,QAAA,EAAQ;AAAA,IAAE;AAAA,EAElD;AAAA,EAEA,MAAc,WAAW,IAAiD,QAAgB;AACzF,WAAO,MAAM,iBAAiB;AAC9B,eAAW,SAAS,KAAK,QAAQ,QAAQ;AACxC,YAAM,UAAU,MAAM,KAAK,aAAa,YAAY,IAAI,KAAK;AAC7D,UAAI,SAAS;AACZ,eAAO,KAAK,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MACjE,OAAO;AACN,eAAO,MAAM,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAClE;AAAA,IACD;AAAA,EACD;AACD;"}
|
|
1
|
+
{"version":3,"file":"ProjectInitializer.js","sources":["../../../../../packages/engine-system-api/src/model/ProjectInitializer.ts"],"sourcesContent":["import { ProjectConfig } from '../types.js'\nimport { StageCreator } from './stages/index.js'\nimport { DatabaseContext } from './database/index.js'\nimport { Connection, retryTransaction } from '@contember/database'\nimport { FingerCrossedLoggerHandler, Logger } from '@contember/logger'\nimport { SystemMigrationsRunner } from '../migrations/index.js'\n\nexport class ProjectInitializer {\n\tconstructor(\n\t\tprivate readonly stageCreator: StageCreator,\n\t\tprivate readonly migrationsRunner: SystemMigrationsRunner,\n\t\tprivate readonly databaseContext: DatabaseContext,\n\t\tprivate readonly project: ProjectConfig,\n\t) {}\n\n\tpublic async initialize(logger: Logger) {\n\t\treturn await logger.scope(\n\t\t\tasync initLogger => {\n\t\t\t\tinitLogger.debug('Executing system schema migrations')\n\t\t\t\tawait this.migrationsRunner.run(initLogger)\n\t\t\t\tconst dbContext = this.databaseContext\n\t\t\t\tawait retryTransaction(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tdbContext.transaction(async trx => {\n\t\t\t\t\t\t\tawait this.initStages(trx, logger)\n\t\t\t\t\t\t}),\n\t\t\t\t\tmessage => initLogger.warn(message),\n\t\t\t\t)\n\t\t\t\tif (dbContext.client.connection instanceof Connection) {\n\t\t\t\t\tawait dbContext.client.connection.clearPool()\n\t\t\t\t}\n\t\t\t},\n\t\t\t{},\n\t\t\t{ handler: FingerCrossedLoggerHandler.factory() },\n\t\t)\n\t}\n\n\tprivate async initStages(db: DatabaseContext<Connection.TransactionLike>, logger: Logger) {\n\t\tlogger.debug(`Creating stages`)\n\t\tfor (const stage of this.project.stages) {\n\t\t\tconst created = await this.stageCreator.createStage(db, stage)\n\t\t\tif (created) {\n\t\t\t\tlogger.warn(`Created stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t} else {\n\t\t\t\tlogger.debug(`Updated stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,mBAAmB;AAAA,EAC/B,YACkB,cACA,kBACA,iBACA,SAChB;AAJgB,SAAA,eAAA;AACA,SAAA,mBAAA;AACA,SAAA,kBAAA;AACA,SAAA,UAAA;AAAA,EACf;AAAA,EAEH,MAAa,WAAW,QAAgB;AACvC,WAAO,MAAM,OAAO;AAAA,MACnB,OAAM,eAAc;AACnB,mBAAW,MAAM,oCAAoC;AACrD,cAAM,KAAK,iBAAiB,IAAI,UAAU;AAC1C,cAAM,YAAY,KAAK;AACvB,cAAM;AAAA,UACL,MACC,UAAU,YAAY,OAAM,QAAO;AAClC,kBAAM,KAAK,WAAW,KAAK,MAAM;AAAA,UAClC,CAAC;AAAA,UACF,CAAA,YAAW,WAAW,KAAK,OAAO;AAAA,QAAA;AAEnC,YAAI,UAAU,OAAO,sBAAsB,YAAY;AACtD,gBAAM,UAAU,OAAO,WAAW,UAAA;AAAA,QACnC;AAAA,MACD;AAAA,MACA,CAAA;AAAA,MACA,EAAE,SAAS,2BAA2B,QAAA,EAAQ;AAAA,IAAE;AAAA,EAElD;AAAA,EAEA,MAAc,WAAW,IAAiD,QAAgB;AACzF,WAAO,MAAM,iBAAiB;AAC9B,eAAW,SAAS,KAAK,QAAQ,QAAQ;AACxC,YAAM,UAAU,MAAM,KAAK,aAAa,YAAY,IAAI,KAAK;AAC7D,UAAI,SAAS;AACZ,eAAO,KAAK,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MACjE,OAAO;AACN,eAAO,MAAM,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAClE;AAAA,IACD;AAAA,EACD;AACD;"}
|
|
@@ -8,7 +8,7 @@ require("../schema/dev.graphql.cjs");
|
|
|
8
8
|
require("../schema/system.graphql.cjs");
|
|
9
9
|
const StagesQuery = require("./queries/stages/StagesQuery.cjs");
|
|
10
10
|
class ProjectTruncateExecutor {
|
|
11
|
-
async truncateProject(db, project, schema) {
|
|
11
|
+
async truncateProject(db, project, schema, identityId) {
|
|
12
12
|
const tableNames = Object.values(schema.model.entities).filter((it) => !it.view).map((it) => it.tableName);
|
|
13
13
|
const junctionTableNames = modelHelpers.getJunctionTables(schema.model).map((it) => it.tableName);
|
|
14
14
|
const allTableNames = [...tableNames, ...junctionTableNames];
|
|
@@ -17,13 +17,13 @@ class ProjectTruncateExecutor {
|
|
|
17
17
|
}
|
|
18
18
|
await db.transaction(async (trx) => {
|
|
19
19
|
await trx.client.query("SET CONSTRAINTS ALL DEFERRED");
|
|
20
|
-
const stages = await
|
|
20
|
+
const stages = await trx.queryHandler.fetch(new StagesQuery.StagesQuery());
|
|
21
21
|
for (const stage of stages) {
|
|
22
22
|
const wrappedNames = allTableNames.map((it) => `${Database.wrapIdentifier(stage.schema)}.${Database.wrapIdentifier(it)}`);
|
|
23
23
|
await trx.client.query(`TRUNCATE ${wrappedNames}`);
|
|
24
24
|
}
|
|
25
25
|
await trx.client.query("SET CONSTRAINTS ALL IMMEDIATE");
|
|
26
|
-
await trx.commandBus.execute(new TruncateEventsCommand.TruncateEventsCommand());
|
|
26
|
+
await trx.commandBus.execute(new TruncateEventsCommand.TruncateEventsCommand(identityId, stages.map((it) => it.id)));
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectTruncateExecutor.cjs","sources":["../../../../../packages/engine-system-api/src/model/ProjectTruncateExecutor.ts"],"sourcesContent":["import { DatabaseContext } from './database'\nimport { ProjectConfig } from '../types'\nimport { TruncateEventsCommand } from './commands'\nimport { getJunctionTables } from './helpers'\nimport { Schema } from '@contember/schema'\nimport { wrapIdentifier } from '@contember/database'\nimport { StagesQuery } from './queries'\n\nexport class ProjectTruncateExecutor {\n\tpublic async truncateProject(db: DatabaseContext, project: ProjectConfig, schema: Schema) {\n\t\tconst tableNames = Object.values(schema.model.entities).filter(it => !it.view).map(it => it.tableName)\n\t\tconst junctionTableNames = getJunctionTables(schema.model).map(it => it.tableName)\n\t\tconst allTableNames = [...tableNames, ...junctionTableNames]\n\t\tif (allTableNames.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tawait db.transaction(async trx => {\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL DEFERRED')\n\t\t\tconst stages = await
|
|
1
|
+
{"version":3,"file":"ProjectTruncateExecutor.cjs","sources":["../../../../../packages/engine-system-api/src/model/ProjectTruncateExecutor.ts"],"sourcesContent":["import { DatabaseContext } from './database/index.js'\nimport { ProjectConfig } from '../types.js'\nimport { TruncateEventsCommand } from './commands/index.js'\nimport { getJunctionTables } from './helpers/index.js'\nimport { Schema } from '@contember/schema'\nimport { wrapIdentifier } from '@contember/database'\nimport { StagesQuery } from './queries/index.js'\n\nexport class ProjectTruncateExecutor {\n\tpublic async truncateProject(db: DatabaseContext, project: ProjectConfig, schema: Schema, identityId: string) {\n\t\tconst tableNames = Object.values(schema.model.entities).filter(it => !it.view).map(it => it.tableName)\n\t\tconst junctionTableNames = getJunctionTables(schema.model).map(it => it.tableName)\n\t\tconst allTableNames = [...tableNames, ...junctionTableNames]\n\t\tif (allTableNames.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tawait db.transaction(async trx => {\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL DEFERRED')\n\t\t\tconst stages = await trx.queryHandler.fetch(new StagesQuery())\n\t\t\tfor (const stage of stages) {\n\t\t\t\tconst wrappedNames = allTableNames.map(it => `${wrapIdentifier(stage.schema)}.${wrapIdentifier(it)}`)\n\t\t\t\tawait trx.client.query(`TRUNCATE ${wrappedNames}`)\n\t\t\t}\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL IMMEDIATE')\n\t\t\tawait trx.commandBus.execute(new TruncateEventsCommand(identityId, stages.map(it => it.id)))\n\t\t})\n\t}\n}\n"],"names":["getJunctionTables","StagesQuery","wrapIdentifier","TruncateEventsCommand"],"mappings":";;;;;;;;;AAQO,MAAM,wBAAwB;AAAA,EACpC,MAAa,gBAAgB,IAAqB,SAAwB,QAAgB,YAAoB;AAC7G,UAAM,aAAa,OAAO,OAAO,OAAO,MAAM,QAAQ,EAAE,OAAO,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AACrG,UAAM,qBAAqBA,+BAAkB,OAAO,KAAK,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AACjF,UAAM,gBAAgB,CAAC,GAAG,YAAY,GAAG,kBAAkB;AAC3D,QAAI,cAAc,WAAW,GAAG;AAC/B;AAAA,IACD;AACA,UAAM,GAAG,YAAY,OAAM,QAAO;AACjC,YAAM,IAAI,OAAO,MAAM,8BAA8B;AACrD,YAAM,SAAS,MAAM,IAAI,aAAa,MAAM,IAAIC,YAAAA,aAAa;AAC7D,iBAAW,SAAS,QAAQ;AAC3B,cAAM,eAAe,cAAc,IAAI,CAAA,OAAM,GAAGC,SAAAA,eAAe,MAAM,MAAM,CAAC,IAAIA,SAAAA,eAAe,EAAE,CAAC,EAAE;AACpG,cAAM,IAAI,OAAO,MAAM,YAAY,YAAY,EAAE;AAAA,MAClD;AACA,YAAM,IAAI,OAAO,MAAM,+BAA+B;AACtD,YAAM,IAAI,WAAW,QAAQ,IAAIC,sBAAAA,sBAAsB,YAAY,OAAO,IAAI,CAAA,OAAM,GAAG,EAAE,CAAC,CAAC;AAAA,IAC5F,CAAC;AAAA,EACF;AACD;;"}
|
|
@@ -6,7 +6,7 @@ import "../schema/dev.graphql.js";
|
|
|
6
6
|
import "../schema/system.graphql.js";
|
|
7
7
|
import { StagesQuery } from "./queries/stages/StagesQuery.js";
|
|
8
8
|
class ProjectTruncateExecutor {
|
|
9
|
-
async truncateProject(db, project, schema) {
|
|
9
|
+
async truncateProject(db, project, schema, identityId) {
|
|
10
10
|
const tableNames = Object.values(schema.model.entities).filter((it) => !it.view).map((it) => it.tableName);
|
|
11
11
|
const junctionTableNames = getJunctionTables(schema.model).map((it) => it.tableName);
|
|
12
12
|
const allTableNames = [...tableNames, ...junctionTableNames];
|
|
@@ -15,13 +15,13 @@ class ProjectTruncateExecutor {
|
|
|
15
15
|
}
|
|
16
16
|
await db.transaction(async (trx) => {
|
|
17
17
|
await trx.client.query("SET CONSTRAINTS ALL DEFERRED");
|
|
18
|
-
const stages = await
|
|
18
|
+
const stages = await trx.queryHandler.fetch(new StagesQuery());
|
|
19
19
|
for (const stage of stages) {
|
|
20
20
|
const wrappedNames = allTableNames.map((it) => `${wrapIdentifier(stage.schema)}.${wrapIdentifier(it)}`);
|
|
21
21
|
await trx.client.query(`TRUNCATE ${wrappedNames}`);
|
|
22
22
|
}
|
|
23
23
|
await trx.client.query("SET CONSTRAINTS ALL IMMEDIATE");
|
|
24
|
-
await trx.commandBus.execute(new TruncateEventsCommand());
|
|
24
|
+
await trx.commandBus.execute(new TruncateEventsCommand(identityId, stages.map((it) => it.id)));
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
}
|