@contember/engine-system-api 1.1.0-alpha.2 → 1.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/dist/src/SystemContainer.d.ts +16 -21
  2. package/dist/src/SystemContainer.d.ts.map +1 -1
  3. package/dist/src/SystemContainer.js +14 -9
  4. package/dist/src/SystemContainer.js.map +1 -1
  5. package/dist/src/index.d.ts +1 -1
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js.map +1 -1
  8. package/dist/src/migrations/2020-03-27-130000-project-migrations.d.ts +4 -0
  9. package/dist/src/migrations/2020-03-27-130000-project-migrations.d.ts.map +1 -0
  10. package/{migrations → dist/src/migrations}/2020-03-27-130000-project-migrations.js +2 -2
  11. package/dist/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -0
  12. package/dist/src/migrations/2020-05-06-150000-composed-primary.d.ts +4 -0
  13. package/dist/src/migrations/2020-05-06-150000-composed-primary.d.ts.map +1 -0
  14. package/{migrations → dist/src/migrations}/2020-05-06-150000-composed-primary.js +13 -13
  15. package/dist/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -0
  16. package/dist/src/migrations/2020-06-01-103000-event-trigger-perf.d.ts +4 -0
  17. package/dist/src/migrations/2020-06-01-103000-event-trigger-perf.d.ts.map +1 -0
  18. package/{migrations → dist/src/migrations}/2020-06-01-103000-event-trigger-perf.js +9 -8
  19. package/dist/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -0
  20. package/dist/src/migrations/2021-05-07-155800-event-log-rework.d.ts +4 -0
  21. package/dist/src/migrations/2021-05-07-155800-event-log-rework.d.ts.map +1 -0
  22. package/{migrations → dist/src/migrations}/2021-05-07-155800-event-log-rework.js +34 -33
  23. package/dist/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -0
  24. package/dist/src/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts +4 -0
  25. package/dist/src/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts.map +1 -0
  26. package/{migrations → dist/src/migrations}/2021-05-19-1232000-event-log-fix-constraint.js +4 -3
  27. package/dist/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -0
  28. package/dist/src/migrations/index.d.ts +3 -0
  29. package/dist/src/migrations/index.d.ts.map +1 -0
  30. package/dist/src/{model/dependencies/content → migrations}/index.js +2 -1
  31. package/dist/src/migrations/index.js.map +1 -0
  32. package/dist/src/migrations/runner.d.ts +3 -0
  33. package/dist/src/migrations/runner.d.ts.map +1 -0
  34. package/{migrations/index.js → dist/src/migrations/runner.js} +5 -3
  35. package/dist/src/migrations/runner.js.map +1 -0
  36. package/dist/src/migrations/types.d.ts +7 -0
  37. package/dist/src/migrations/types.d.ts.map +1 -0
  38. package/dist/src/{migrations.js → migrations/types.js} +1 -1
  39. package/dist/src/migrations/types.js.map +1 -0
  40. package/dist/src/model/ProjectInitializer.d.ts.map +1 -1
  41. package/dist/src/model/ProjectInitializer.js +11 -13
  42. package/dist/src/model/ProjectInitializer.js.map +1 -1
  43. package/dist/src/model/ProjectTruncateExecutor.d.ts.map +1 -1
  44. package/dist/src/model/ProjectTruncateExecutor.js +4 -3
  45. package/dist/src/model/ProjectTruncateExecutor.js.map +1 -1
  46. package/dist/src/model/commands/stages/CreateStageCommand.d.ts +8 -0
  47. package/dist/src/model/commands/stages/CreateStageCommand.d.ts.map +1 -0
  48. package/dist/src/model/commands/stages/{CreateOrUpdateStageCommand.js → CreateStageCommand.js} +9 -10
  49. package/dist/src/model/commands/stages/CreateStageCommand.js.map +1 -0
  50. package/dist/src/model/commands/stages/index.d.ts +1 -1
  51. package/dist/src/model/commands/stages/index.d.ts.map +1 -1
  52. package/dist/src/model/commands/stages/index.js +1 -1
  53. package/dist/src/model/commands/stages/index.js.map +1 -1
  54. package/dist/src/model/database/DatabaseContext.d.ts +1 -1
  55. package/dist/src/model/database/DatabaseContext.d.ts.map +1 -1
  56. package/dist/src/model/database/DatabaseContext.js +4 -8
  57. package/dist/src/model/database/DatabaseContext.js.map +1 -1
  58. package/dist/src/model/dependencies/index.d.ts +0 -1
  59. package/dist/src/model/dependencies/index.d.ts.map +1 -1
  60. package/dist/src/model/dependencies/index.js +0 -1
  61. package/dist/src/model/dependencies/index.js.map +1 -1
  62. package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts +1 -2
  63. package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts.map +1 -1
  64. package/dist/src/model/dtos/Stage.d.ts +2 -4
  65. package/dist/src/model/dtos/Stage.d.ts.map +1 -1
  66. package/dist/src/model/events/EventResponseBuilder.d.ts +1 -2
  67. package/dist/src/model/events/EventResponseBuilder.d.ts.map +1 -1
  68. package/dist/src/model/events/EventResponseBuilder.js +2 -2
  69. package/dist/src/model/events/EventResponseBuilder.js.map +1 -1
  70. package/dist/src/model/migrations/ProjectMigrator.d.ts +2 -2
  71. package/dist/src/model/migrations/ProjectMigrator.d.ts.map +1 -1
  72. package/dist/src/model/migrations/ProjectMigrator.js +6 -7
  73. package/dist/src/model/migrations/ProjectMigrator.js.map +1 -1
  74. package/dist/src/model/migrations/index.d.ts +0 -1
  75. package/dist/src/model/migrations/index.d.ts.map +1 -1
  76. package/dist/src/model/migrations/index.js +0 -1
  77. package/dist/src/model/migrations/index.js.map +1 -1
  78. package/dist/src/model/queries/stages/StageBySlugQuery.d.ts +2 -2
  79. package/dist/src/model/queries/stages/StageBySlugQuery.d.ts.map +1 -1
  80. package/dist/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  81. package/dist/src/model/queries/stages/StageQueryFactory.d.ts +2 -2
  82. package/dist/src/model/queries/stages/StageQueryFactory.d.ts.map +1 -1
  83. package/dist/src/model/queries/stages/StageQueryFactory.js +2 -1
  84. package/dist/src/model/queries/stages/StageQueryFactory.js.map +1 -1
  85. package/dist/src/model/queries/stages/StagesQuery.d.ts +1 -1
  86. package/dist/src/model/queries/stages/StagesQuery.d.ts.map +1 -1
  87. package/dist/src/model/queries/stages/StagesQuery.js +2 -5
  88. package/dist/src/model/queries/stages/StagesQuery.js.map +1 -1
  89. package/dist/src/model/stages/StageCreator.d.ts.map +1 -1
  90. package/dist/src/model/stages/StageCreator.js +3 -2
  91. package/dist/src/model/stages/StageCreator.js.map +1 -1
  92. package/dist/src/resolvers/{ResolverContext.d.ts → SystemResolverContext.d.ts} +5 -8
  93. package/dist/src/resolvers/SystemResolverContext.d.ts.map +1 -0
  94. package/dist/src/resolvers/{ResolverContext.js → SystemResolverContext.js} +5 -6
  95. package/dist/src/resolvers/{ResolverContext.js.map → SystemResolverContext.js.map} +1 -1
  96. package/dist/src/resolvers/index.d.ts +1 -1
  97. package/dist/src/resolvers/index.d.ts.map +1 -1
  98. package/dist/src/resolvers/index.js +1 -1
  99. package/dist/src/resolvers/index.js.map +1 -1
  100. package/dist/src/resolvers/mutation/MigrateMutationResolver.d.ts +3 -3
  101. package/dist/src/resolvers/mutation/MigrateMutationResolver.d.ts.map +1 -1
  102. package/dist/src/resolvers/mutation/MigrateMutationResolver.js +5 -4
  103. package/dist/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  104. package/dist/src/resolvers/mutation/MigrationAlterMutationResolver.d.ts +3 -3
  105. package/dist/src/resolvers/mutation/MigrationAlterMutationResolver.d.ts.map +1 -1
  106. package/dist/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  107. package/dist/src/resolvers/mutation/TruncateMutationResolver.d.ts +2 -2
  108. package/dist/src/resolvers/mutation/TruncateMutationResolver.d.ts.map +1 -1
  109. package/dist/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  110. package/dist/src/resolvers/query/EventsQueryResolver.d.ts +2 -2
  111. package/dist/src/resolvers/query/EventsQueryResolver.d.ts.map +1 -1
  112. package/dist/src/resolvers/query/EventsQueryResolver.js +1 -1
  113. package/dist/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  114. package/dist/src/resolvers/query/ExecutedMigrationsQueryResolver.d.ts +2 -2
  115. package/dist/src/resolvers/query/ExecutedMigrationsQueryResolver.d.ts.map +1 -1
  116. package/dist/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  117. package/dist/src/resolvers/query/StagesQueryResolver.d.ts +2 -2
  118. package/dist/src/resolvers/query/StagesQueryResolver.d.ts.map +1 -1
  119. package/dist/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  120. package/dist/src/resolvers/types/EventOldValuesResolver.d.ts +3 -3
  121. package/dist/src/resolvers/types/EventOldValuesResolver.d.ts.map +1 -1
  122. package/dist/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  123. package/dist/src/tsconfig.tsbuildinfo +1 -1
  124. package/dist/src/types.d.ts +1 -0
  125. package/dist/src/types.d.ts.map +1 -1
  126. package/{migrations → dist/tests/cases/migrations}/2020-05-06-150000-composed-primary.test.d.ts +0 -0
  127. package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.d.ts.map +1 -0
  128. package/{migrations → dist/tests/cases/migrations}/2020-05-06-150000-composed-primary.test.js +12 -12
  129. package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.js.map +1 -0
  130. package/{migrations → dist/tests/cases/migrations}/2020-06-01-103000-event-trigger-perf.test.d.ts +0 -0
  131. package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.d.ts.map +1 -0
  132. package/{migrations → dist/tests/cases/migrations}/2020-06-01-103000-event-trigger-perf.test.js +7 -7
  133. package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.js.map +1 -0
  134. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +15 -15
  136. package/src/SystemContainer.ts +21 -27
  137. package/src/index.ts +1 -0
  138. package/{migrations → src/migrations}/2018-08-04-102200-init.sql +9 -9
  139. package/{migrations → src/migrations}/2018-08-05-130501-trigger-event-function.sql +9 -9
  140. package/{migrations → src/migrations}/2019-01-14-143432-event-trx-id.sql +4 -4
  141. package/{migrations → src/migrations}/2019-02-04-154500-event-rebase.sql +6 -6
  142. package/{migrations → src/migrations}/2019-03-18-104147-event-run-migration-struct.sql +1 -1
  143. package/{migrations → src/migrations}/2019-07-29-103000-trigger-event-function-fix.sql +6 -6
  144. package/{migrations → src/migrations}/2019-11-28-100000-missing-setting-fallback.sql +2 -2
  145. package/{migrations → src/migrations}/2020-03-27-130000-project-migrations.ts +3 -4
  146. package/{migrations → src/migrations}/2020-05-06-150000-composed-primary.ts +13 -13
  147. package/{migrations → src/migrations}/2020-06-01-103000-event-trigger-perf.ts +9 -8
  148. package/{migrations → src/migrations}/2021-03-23-110000-timestamp-fix.sql +2 -2
  149. package/{migrations → src/migrations}/2021-05-07-155800-event-log-rework.ts +34 -33
  150. package/{migrations → src/migrations}/2021-05-19-1232000-event-log-fix-constraint.ts +4 -3
  151. package/src/migrations/2021-12-21-155500-events-up.sql +6 -0
  152. package/src/migrations/2022-02-08-132600-fn-search-path.sql +7 -0
  153. package/src/migrations/2022-02-08-140500-drop-deadcode.sql +2 -0
  154. package/src/migrations/2022-02-08-144400-dynamic-stage-schema.sql +41 -0
  155. package/src/migrations/index.ts +2 -0
  156. package/{migrations/index.ts → src/migrations/runner.ts} +2 -2
  157. package/src/migrations/types.ts +7 -0
  158. package/src/model/ProjectInitializer.ts +13 -14
  159. package/src/model/ProjectTruncateExecutor.ts +5 -4
  160. package/src/model/commands/stages/{CreateOrUpdateStageCommand.ts → CreateStageCommand.ts} +8 -11
  161. package/src/model/commands/stages/index.ts +1 -1
  162. package/src/model/database/DatabaseContext.ts +3 -8
  163. package/src/model/dependencies/index.ts +0 -1
  164. package/src/model/dependencies/tenant/IdentityFetcher.ts +1 -1
  165. package/src/model/dtos/Stage.ts +2 -5
  166. package/src/model/events/EventResponseBuilder.ts +2 -3
  167. package/src/model/migrations/ProjectMigrator.ts +10 -9
  168. package/src/model/migrations/index.ts +0 -1
  169. package/src/model/queries/stages/StageBySlugQuery.ts +2 -2
  170. package/src/model/queries/stages/StageQueryFactory.ts +3 -2
  171. package/src/model/queries/stages/StagesQuery.ts +4 -7
  172. package/src/model/stages/StageCreator.ts +4 -3
  173. package/src/resolvers/{ResolverContext.ts → SystemResolverContext.ts} +4 -9
  174. package/src/resolvers/index.ts +1 -1
  175. package/src/resolvers/mutation/MigrateMutationResolver.ts +9 -8
  176. package/src/resolvers/mutation/MigrationAlterMutationResolver.ts +3 -3
  177. package/src/resolvers/mutation/TruncateMutationResolver.ts +2 -2
  178. package/src/resolvers/query/EventsQueryResolver.ts +3 -3
  179. package/src/resolvers/query/ExecutedMigrationsQueryResolver.ts +2 -2
  180. package/src/resolvers/query/StagesQueryResolver.ts +2 -2
  181. package/src/resolvers/types/EventOldValuesResolver.ts +3 -3
  182. package/src/types.ts +1 -0
  183. package/{migrations → tests/cases/migrations}/2020-05-06-150000-composed-primary.test.ts +11 -12
  184. package/{migrations → tests/cases/migrations}/2020-06-01-103000-event-trigger-perf.test.ts +6 -7
  185. package/tests/tsconfig.json +0 -3
  186. package/tsconfig.json +0 -3
  187. package/dist/src/migrations.d.ts +0 -10
  188. package/dist/src/migrations.d.ts.map +0 -1
  189. package/dist/src/migrations.js.map +0 -1
  190. package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.d.ts +0 -8
  191. package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.d.ts.map +0 -1
  192. package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.js.map +0 -1
  193. package/dist/src/model/dependencies/content/EntitiesSelector.d.ts +0 -28
  194. package/dist/src/model/dependencies/content/EntitiesSelector.d.ts.map +0 -1
  195. package/dist/src/model/dependencies/content/EntitiesSelector.js +0 -3
  196. package/dist/src/model/dependencies/content/EntitiesSelector.js.map +0 -1
  197. package/dist/src/model/dependencies/content/index.d.ts +0 -2
  198. package/dist/src/model/dependencies/content/index.d.ts.map +0 -1
  199. package/dist/src/model/dependencies/content/index.js.map +0 -1
  200. package/dist/src/model/migrations/MigrationExecutor.d.ts +0 -10
  201. package/dist/src/model/migrations/MigrationExecutor.d.ts.map +0 -1
  202. package/dist/src/model/migrations/MigrationExecutor.js +0 -25
  203. package/dist/src/model/migrations/MigrationExecutor.js.map +0 -1
  204. package/dist/src/resolvers/ResolverContext.d.ts.map +0 -1
  205. package/migrations/2020-03-27-130000-project-migrations.d.ts +0 -4
  206. package/migrations/2020-03-27-130000-project-migrations.d.ts.map +0 -1
  207. package/migrations/2020-05-06-150000-composed-primary.d.ts +0 -4
  208. package/migrations/2020-05-06-150000-composed-primary.d.ts.map +0 -1
  209. package/migrations/2020-05-06-150000-composed-primary.test.d.ts.map +0 -1
  210. package/migrations/2020-06-01-103000-event-trigger-perf.d.ts +0 -4
  211. package/migrations/2020-06-01-103000-event-trigger-perf.d.ts.map +0 -1
  212. package/migrations/2020-06-01-103000-event-trigger-perf.test.d.ts.map +0 -1
  213. package/migrations/2021-05-07-155800-event-log-rework.d.ts +0 -4
  214. package/migrations/2021-05-07-155800-event-log-rework.d.ts.map +0 -1
  215. package/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts +0 -4
  216. package/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts.map +0 -1
  217. package/migrations/2021-12-21-155500-events-up.sql +0 -6
  218. package/migrations/index.d.ts +0 -3
  219. package/migrations/index.d.ts.map +0 -1
  220. package/migrations/tsconfig.json +0 -15
  221. package/migrations/tsconfig.tsbuildinfo +0 -1
  222. package/src/migrations.ts +0 -10
  223. package/src/model/dependencies/content/EntitiesSelector.ts +0 -32
  224. package/src/model/dependencies/content/index.ts +0 -1
  225. package/src/model/migrations/MigrationExecutor.ts +0 -33
@@ -1,13 +1,10 @@
1
- import { DatabaseQuery, DatabaseQueryable, SelectBuilder } from '@contember/database'
2
- import { Stage } from '../../../schema'
1
+ import { DatabaseQuery, DatabaseQueryable } from '@contember/database'
2
+ import { prepareStageQueryBuilder } from './StageQueryFactory'
3
+ import { Stage } from '../../dtos'
3
4
 
4
5
  class StagesQuery extends DatabaseQuery<Stage[]> {
5
6
  async fetch(queryable: DatabaseQueryable): Promise<Stage[]> {
6
- const select = SelectBuilder.create<Stage>() //
7
- .from('stage')
8
- .select('id')
9
- .select('name')
10
- .select('slug')
7
+ const select = prepareStageQueryBuilder()
11
8
 
12
9
  return await select.getResult(queryable.db)
13
10
  }
@@ -1,4 +1,4 @@
1
- import { CreateOrUpdateStageCommand } from '../commands'
1
+ import { CreateStageCommand } from '../commands'
2
2
  import { StageBySlugQuery } from '../queries'
3
3
  import { StageConfig } from '../../types'
4
4
  import { DatabaseContext } from '../database'
@@ -11,10 +11,11 @@ class StageCreator {
11
11
  stage: StageConfig,
12
12
  ): Promise<boolean> {
13
13
  const stageRow = await db.queryHandler.fetch(new StageBySlugQuery(stage.slug))
14
- if (stageRow && stageRow.name === stage.name) {
14
+ if (stageRow) {
15
15
  return false
16
16
  }
17
- return await db.commandBus.execute(new CreateOrUpdateStageCommand(stage))
17
+ await db.commandBus.execute(new CreateStageCommand(stage))
18
+ return true
18
19
  }
19
20
  }
20
21
 
@@ -1,15 +1,13 @@
1
1
  import { Authorizator } from '@contember/authorization'
2
2
  import { Schema } from '@contember/schema'
3
3
  import { ForbiddenError } from 'apollo-server-errors'
4
- import { DatabaseContext, SchemaVersionBuilder } from '../model'
4
+ import { DatabaseContext, Identity, SchemaVersionBuilder } from '../model'
5
5
  import { ProjectConfig } from '../types'
6
- import { Identity } from '../model/authorization'
7
6
  import { StagePermissionsFactory } from '../model/authorization/StagePermissionsFactory'
8
7
  import { StageScope } from '../model/authorization/StageScope'
9
8
  import { ItemLoader } from '../utils/batchQuery'
10
- import { Client } from '@contember/database'
11
9
 
12
- export class ResolverContextFactory {
10
+ export class SystemResolverContextFactory {
13
11
  constructor(
14
12
  private readonly authorizator: Authorizator<Identity>,
15
13
  private readonly schemaVersionBuilder: SchemaVersionBuilder,
@@ -17,10 +15,9 @@ export class ResolverContextFactory {
17
15
 
18
16
  public async create(
19
17
  systemDbContext: DatabaseContext,
20
- tenantDb: Client,
21
18
  project: ProjectConfig,
22
19
  identity: Identity,
23
- ): Promise<ResolverContext> {
20
+ ): Promise<SystemResolverContext> {
24
21
  const schema = await this.schemaVersionBuilder.buildSchema(systemDbContext)
25
22
  const stagePermissionsFactory = new StagePermissionsFactory(schema)
26
23
  const loaders = new Map<LoaderFactory<any, any>, ItemLoader<any, any>>()
@@ -44,14 +41,13 @@ export class ResolverContextFactory {
44
41
  loaders.set(loaderFactory, newLoader)
45
42
  return newLoader
46
43
  },
47
- tenantDb,
48
44
  }
49
45
  }
50
46
  }
51
47
 
52
48
  export type LoaderFactory<Args, Item> = (db: DatabaseContext) => ItemLoader<Args, Item>
53
49
 
54
- export interface ResolverContext {
50
+ export interface SystemResolverContext {
55
51
  readonly project: ProjectConfig
56
52
  readonly schema: Schema
57
53
  readonly identity: Identity
@@ -59,5 +55,4 @@ export interface ResolverContext {
59
55
  readonly authorizator: Authorizator<Identity>
60
56
  readonly requireAccess: (action: Authorizator.Action, stage: string, message?: string) => Promise<void>
61
57
  readonly getLoader: <Args, Item>(loaderFactory: LoaderFactory<Args, Item>) => ItemLoader<Args, Item>
62
- readonly tenantDb: Client
63
58
  }
@@ -1,5 +1,5 @@
1
1
  export * from './mutation'
2
2
  export * from './query'
3
3
  export * from './Resolver'
4
- export * from './ResolverContext'
4
+ export * from './SystemResolverContext'
5
5
  export * from './ResolverFactory'
@@ -1,9 +1,9 @@
1
1
  import { GraphQLResolveInfo } from 'graphql'
2
- import { ResolverContext } from '../ResolverContext'
2
+ import { SystemResolverContext } from '../SystemResolverContext'
3
3
  import { MutationResolver } from '../Resolver'
4
4
  import { MigrateResponse, MutationMigrateArgs } from '../../schema'
5
5
  import { Migration } from '@contember/schema-migrations'
6
- import { AuthorizationActions, MigrationError, ProjectMigrator } from '../../model'
6
+ import { AuthorizationActions, MigrationError, ProjectMigrator, StagesQuery } from '../../model'
7
7
 
8
8
  export class MigrateMutationResolver implements MutationResolver<'migrate'> {
9
9
  constructor(private readonly projectMigrator: ProjectMigrator) {}
@@ -11,7 +11,7 @@ export class MigrateMutationResolver implements MutationResolver<'migrate'> {
11
11
  async migrateForce(
12
12
  parent: any,
13
13
  args: MutationMigrateArgs,
14
- context: ResolverContext,
14
+ context: SystemResolverContext,
15
15
  info: GraphQLResolveInfo,
16
16
  ): Promise<MigrateResponse> {
17
17
  return this.migrate(parent, args, context, info, true)
@@ -20,18 +20,19 @@ export class MigrateMutationResolver implements MutationResolver<'migrate'> {
20
20
  async migrate(
21
21
  parent: any,
22
22
  args: MutationMigrateArgs,
23
- context: ResolverContext,
23
+ context: SystemResolverContext,
24
24
  info: GraphQLResolveInfo,
25
25
  force = false,
26
26
  ): Promise<MigrateResponse> {
27
- for (const stage of context.project.stages) {
28
- await context.requireAccess(AuthorizationActions.PROJECT_MIGRATE, stage.slug)
29
- }
30
27
  const migrations = args.migrations as readonly Migration[]
31
28
 
32
29
  return context.db.transaction(async trx => {
30
+ const stages = await trx.queryHandler.fetch(new StagesQuery())
31
+ for (const stage of stages) {
32
+ await context.requireAccess(AuthorizationActions.PROJECT_MIGRATE, stage.slug)
33
+ }
33
34
  try {
34
- await this.projectMigrator.migrate(trx, context.project, migrations, () => null, force)
35
+ await this.projectMigrator.migrate(trx, stages, migrations, () => null, force)
35
36
  } catch (e) {
36
37
  if (e instanceof MigrationError) {
37
38
  await trx.client.connection.rollback()
@@ -1,5 +1,5 @@
1
1
  import { GraphQLResolveInfo } from 'graphql'
2
- import { ResolverContext } from '../ResolverContext'
2
+ import { SystemResolverContext } from '../SystemResolverContext'
3
3
  import { MutationResolver } from '../Resolver'
4
4
  import {
5
5
  MigrationDeleteErrorCode,
@@ -19,7 +19,7 @@ export class MigrationAlterMutationResolver implements MutationResolver<'migrati
19
19
  async migrationModify(
20
20
  parent: any,
21
21
  args: MutationMigrationModifyArgs,
22
- context: ResolverContext,
22
+ context: SystemResolverContext,
23
23
  info: GraphQLResolveInfo,
24
24
  ): Promise<MigrationModifyResponse> {
25
25
  const result = await this.migrationAlterer.modifyMigration(
@@ -41,7 +41,7 @@ export class MigrationAlterMutationResolver implements MutationResolver<'migrati
41
41
  async migrationDelete(
42
42
  parent: any,
43
43
  args: MutationMigrationDeleteArgs,
44
- context: ResolverContext,
44
+ context: SystemResolverContext,
45
45
  info: GraphQLResolveInfo,
46
46
  ): Promise<MigrationDeleteResponse> {
47
47
  const result = await this.migrationAlterer.deleteMigration(context.db, args.migration)
@@ -1,5 +1,5 @@
1
1
  import { GraphQLResolveInfo } from 'graphql'
2
- import { ResolverContext } from '../ResolverContext'
2
+ import { SystemResolverContext } from '../SystemResolverContext'
3
3
  import { MutationResolver } from '../Resolver'
4
4
  import { TruncateResponse } from '../../schema'
5
5
  import { ProjectTruncateExecutor } from '../../model'
@@ -9,7 +9,7 @@ export class TruncateMutationResolver implements MutationResolver<'truncate'> {
9
9
  async truncate(
10
10
  parent: any,
11
11
  args: any,
12
- context: ResolverContext,
12
+ context: SystemResolverContext,
13
13
  info: GraphQLResolveInfo,
14
14
  ): Promise<TruncateResponse> {
15
15
  await this.projectTruncateExecutor.truncateProject(context.db, context.project, context.schema)
@@ -1,5 +1,5 @@
1
1
  import { GraphQLResolveInfo } from 'graphql'
2
- import { ResolverContext } from '../ResolverContext'
2
+ import { SystemResolverContext } from '../SystemResolverContext'
3
3
  import { QueryResolver } from '../Resolver'
4
4
  import { EventsOrder, QueryEventsArgs, ResolversTypes } from '../../schema'
5
5
  import { AuthorizationActions, EventResponseBuilder, EventsQuery, StageBySlugQuery } from '../../model'
@@ -14,7 +14,7 @@ export class EventsQueryResolver implements QueryResolver<'events'> {
14
14
  async events(
15
15
  parent: any,
16
16
  { args }: QueryEventsArgs,
17
- context: ResolverContext,
17
+ context: SystemResolverContext,
18
18
  info: GraphQLResolveInfo,
19
19
  ): Promise<ResolversTypes['Event'][]> {
20
20
  return context.db.transaction(async db => {
@@ -36,7 +36,7 @@ export class EventsQueryResolver implements QueryResolver<'events'> {
36
36
  Math.min(args?.limit ?? 1000, 10000),
37
37
  ))
38
38
 
39
- return await this.eventResponseBuilder.buildResponse(context.tenantDb, history)
39
+ return await this.eventResponseBuilder.buildResponse(history)
40
40
  })
41
41
  }
42
42
  }
@@ -1,5 +1,5 @@
1
1
  import { GraphQLResolveInfo } from 'graphql'
2
- import { ResolverContext } from '../ResolverContext'
2
+ import { SystemResolverContext } from '../SystemResolverContext'
3
3
  import { QueryResolver } from '../Resolver'
4
4
  import { ExecutedMigration, QueryExecutedMigrationsArgs } from '../../schema'
5
5
  import { ExecutedMigrationByVersionQuery, ExecutedMigrationsQuery } from '../../model'
@@ -8,7 +8,7 @@ export class ExecutedMigrationsQueryResolver implements QueryResolver<'executedM
8
8
  async executedMigrations(
9
9
  parent: any,
10
10
  args: QueryExecutedMigrationsArgs,
11
- context: ResolverContext,
11
+ context: SystemResolverContext,
12
12
  info: GraphQLResolveInfo,
13
13
  ): Promise<ExecutedMigration[]> {
14
14
  if (args.version) {
@@ -1,11 +1,11 @@
1
1
  import { GraphQLResolveInfo } from 'graphql'
2
- import { ResolverContext } from '../ResolverContext'
2
+ import { SystemResolverContext } from '../SystemResolverContext'
3
3
  import { QueryResolver } from '../Resolver'
4
4
  import { Stage } from '../../schema'
5
5
  import { StagesQuery } from '../../model'
6
6
 
7
7
  export class StagesQueryResolver implements QueryResolver<'stages'> {
8
- async stages(parent: any, args: any, context: ResolverContext, info: GraphQLResolveInfo): Promise<Stage[]> {
8
+ async stages(parent: any, args: any, context: SystemResolverContext, info: GraphQLResolveInfo): Promise<Stage[]> {
9
9
  return context.db.queryHandler.fetch(new StagesQuery())
10
10
  }
11
11
  }
@@ -1,12 +1,12 @@
1
1
  import { DeleteEvent, DeleteEventResolvers, UpdateEvent, UpdateEventResolvers } from '../../schema'
2
- import { ResolverContext } from '../ResolverContext'
2
+ import { SystemResolverContext } from '../SystemResolverContext'
3
3
  import { oldValuesLoaderFactory } from './OldValuesHelpers'
4
4
 
5
- export class EventOldValuesResolver implements UpdateEventResolvers<ResolverContext>, DeleteEventResolvers<ResolverContext> {
5
+ export class EventOldValuesResolver implements UpdateEventResolvers<SystemResolverContext>, DeleteEventResolvers<SystemResolverContext> {
6
6
  async oldValues(
7
7
  parent: UpdateEvent | DeleteEvent,
8
8
  args: unknown,
9
- context: ResolverContext,
9
+ context: SystemResolverContext,
10
10
  ): Promise<object> {
11
11
  return await context.getLoader(oldValuesLoaderFactory)(parent.id)
12
12
  }
package/src/types.ts CHANGED
@@ -7,4 +7,5 @@ export interface ProjectConfig {
7
7
  export interface StageConfig {
8
8
  slug: string
9
9
  name: string
10
+ schema?: string
10
11
  }
@@ -1,4 +1,4 @@
1
- import migration from './2020-05-06-150000-composed-primary'
1
+ import migration from '../../../src/migrations/2020-05-06-150000-composed-primary'
2
2
  import { createMigrationBuilder } from '@contember/database-migrations'
3
3
  import { sampleProject } from '@contember/engine-api-tester'
4
4
  import { test } from 'uvu'
@@ -21,7 +21,6 @@ test('many-has-many-primary migration sql', async () => {
21
21
  },
22
22
  ],
23
23
  },
24
- queryHandler: null as any,
25
24
  })
26
25
  assert.equal(
27
26
  builder.getSql(),
@@ -49,13 +48,13 @@ CREATE TRIGGER "log_event"
49
48
  WITH RECURSIVE
50
49
  recent_events(id, type, previous_id, data, created_at, stage) AS (
51
50
  SELECT event.id, type, previous_id, data, created_at, stage.slug
52
- FROM system.event
53
- JOIN system.stage ON stage.event_id = event.id
51
+ FROM event
52
+ JOIN stage ON stage.event_id = event.id
54
53
 
55
54
  UNION ALL
56
55
 
57
56
  SELECT event.id, event.type, event.previous_id, event.data, event.created_at, recent_events.stage
58
- FROM system.event, recent_events
57
+ FROM event, recent_events
59
58
  WHERE event.id = recent_events.previous_id
60
59
  ),
61
60
  affected_events AS (
@@ -134,15 +133,15 @@ CREATE TRIGGER "log_event"
134
133
  FOR EACH ROW
135
134
  EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
136
135
 
137
- UPDATE system.event
136
+ UPDATE event
138
137
  SET data = data || jsonb_build_object('rowId', json_build_array(data ->> 'rowId'))
139
138
  WHERE jsonb_typeof(data -> 'rowId') = 'string'
140
139
  ;
141
- CREATE OR REPLACE FUNCTION "system"."trigger_event"() RETURNS TRIGGER AS
140
+ CREATE OR REPLACE FUNCTION "trigger_event"() RETURNS TRIGGER AS
142
141
  $$
143
142
 
144
143
  DECLARE
145
- new_event_id UUID := system.uuid_generate_v4();
144
+ new_event_id UUID := uuid_generate_v4();
146
145
  DECLARE new_event_type TEXT;
147
146
  DECLARE new_event_data JSONB;
148
147
  DECLARE current_stage RECORD;
@@ -202,15 +201,15 @@ BEGIN
202
201
  END CASE;
203
202
 
204
203
  SELECT "id", "event_id"
205
- FROM "system"."stage"
204
+ FROM "stage"
206
205
  WHERE "slug" = right(TG_TABLE_SCHEMA, -length('stage_'))
207
206
  FOR NO KEY UPDATE
208
207
  INTO current_stage;
209
208
 
210
- INSERT INTO "system"."event" ("id", "type", "data", "previous_id")
209
+ INSERT INTO "event" ("id", "type", "data", "previous_id")
211
210
  VALUES (new_event_id, new_event_type, new_event_data, current_stage.event_id);
212
211
 
213
- UPDATE "system"."stage"
212
+ UPDATE "stage"
214
213
  SET "event_id" = new_event_id
215
214
  WHERE "id" = current_stage.id;
216
215
 
@@ -219,7 +218,7 @@ END;
219
218
 
220
219
  $$ LANGUAGE plpgsql;
221
220
  ;
222
- DROP FUNCTION "system"."make_diff"("old" jsonb, "new" jsonb);
221
+ DROP FUNCTION "make_diff"("old" jsonb, "new" jsonb);
223
222
  `,
224
223
  )
225
224
  })
@@ -1,4 +1,4 @@
1
- import migration from './2020-06-01-103000-event-trigger-perf'
1
+ import migration from '../../../src/migrations/2020-06-01-103000-event-trigger-perf'
2
2
  import { createMigrationBuilder } from '@contember/database-migrations'
3
3
  import { sampleProject } from '@contember/engine-api-tester'
4
4
  import { test } from 'uvu'
@@ -21,11 +21,10 @@ test('event-trigger-performance sql', async () => {
21
21
  },
22
22
  ],
23
23
  },
24
- queryHandler: null as any,
25
24
  })
26
25
  assert.equal(
27
26
  builder.getSql(),
28
- `CREATE OR REPLACE FUNCTION "system"."trigger_event"() RETURNS TRIGGER AS $$
27
+ `CREATE OR REPLACE FUNCTION "trigger_event"() RETURNS TRIGGER AS $$
29
28
  DECLARE
30
29
  DECLARE new_event_type TEXT;
31
30
  DECLARE previous_id UUID;
@@ -87,26 +86,26 @@ BEGIN
87
86
  END CASE;
88
87
  CASE WHEN NULLIF(current_setting('system.current_stage_id' || TG_TABLE_SCHEMA, TRUE), '') IS NULL THEN
89
88
  PERFORM set_config('system.current_stage_id' || TG_TABLE_SCHEMA, "id"::TEXT, TRUE), set_config('system.current_stage_event' || TG_TABLE_SCHEMA, "event_id"::TEXT, TRUE)
90
- FROM "system"."stage"
89
+ FROM "stage"
91
90
  WHERE "slug" = right(TG_TABLE_SCHEMA, -length('stage_'))
92
91
  FOR NO KEY UPDATE;
93
92
  ELSE
94
93
  -- do nothing
95
94
  END CASE;
96
95
  previous_id := current_setting('system.current_stage_event' || TG_TABLE_SCHEMA)::UUID;
97
- INSERT INTO "system"."event" ("id", "type", "data", "previous_id")
96
+ INSERT INTO "event" ("id", "type", "data", "previous_id")
98
97
  VALUES (set_config('system.current_stage_event' || TG_TABLE_SCHEMA, system.uuid_generate_v4()::TEXT, TRUE)::UUID, new_event_type, new_event_data, previous_id);
99
98
 
100
99
  RETURN NULL;
101
100
  END;
102
101
 
103
102
  $$ LANGUAGE plpgsql;
104
- CREATE OR REPLACE FUNCTION "system"."statement_trigger_event"() RETURNS TRIGGER AS
103
+ CREATE OR REPLACE FUNCTION "statement_trigger_event"() RETURNS TRIGGER AS
105
104
  $$
106
105
  BEGIN
107
106
  CASE
108
107
  WHEN NULLIF(current_setting('system.current_stage_id' || TG_TABLE_SCHEMA, TRUE), '') IS NOT NULL THEN
109
- UPDATE system.stage SET event_id = current_setting('system.current_stage_event' || TG_TABLE_SCHEMA)::UUID WHERE id = current_setting('system.current_stage_id' || TG_TABLE_SCHEMA)::UUID;
108
+ UPDATE stage SET event_id = current_setting('system.current_stage_event' || TG_TABLE_SCHEMA)::UUID WHERE id = current_setting('system.current_stage_id' || TG_TABLE_SCHEMA)::UUID;
110
109
  ELSE
111
110
  -- do nothing
112
111
  END CASE;
@@ -8,9 +8,6 @@
8
8
  {
9
9
  "path": "../src"
10
10
  },
11
- {
12
- "path": "../migrations"
13
- },
14
11
  {
15
12
  "path": "../../engine-api-tester/src"
16
13
  }
package/tsconfig.json CHANGED
@@ -7,9 +7,6 @@
7
7
  },
8
8
  {
9
9
  "path": "./tests"
10
- },
11
- {
12
- "path": "./migrations"
13
10
  }
14
11
  ]
15
12
  }
@@ -1,10 +0,0 @@
1
- import { Schema } from '@contember/schema';
2
- import { ProjectConfig } from './types';
3
- import { QueryHandler } from '@contember/queryable';
4
- import { DatabaseQueryable } from '@contember/database';
5
- export interface MigrationArgs {
6
- schemaResolver: () => Promise<Schema>;
7
- project: ProjectConfig;
8
- queryHandler: QueryHandler<DatabaseQueryable>;
9
- }
10
- //# sourceMappingURL=migrations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,WAAW,aAAa;IAC7B,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,OAAO,EAAE,aAAa,CAAA;IACtB,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAA;CAC7C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { StageConfig } from '../../../types';
2
- import { Command } from '../Command';
3
- export declare class CreateOrUpdateStageCommand implements Command<boolean> {
4
- private readonly stage;
5
- constructor(stage: StageConfig);
6
- execute({ db, providers }: Command.Args): Promise<boolean>;
7
- }
8
- //# sourceMappingURL=CreateOrUpdateStageCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CreateOrUpdateStageCommand.d.ts","sourceRoot":"","sources":["../../../../../src/model/commands/stages/CreateOrUpdateStageCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,qBAAa,0BAA2B,YAAW,OAAO,CAAC,OAAO,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAElC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBvE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CreateOrUpdateStageCommand.js","sourceRoot":"","sources":["../../../../../src/model/commands/stages/CreateOrUpdateStageCommand.ts"],"names":[],"mappings":";;;AAAA,kDAAuF;AACvF,2CAAgD;AAIhD,MAAa,0BAA0B;IACtC,YAA6B,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAE5C,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAgB;QACnD,MAAM,MAAM,GAAG,MAAM,wBAAa,CAAC,MAAM,EAAE;aACzC,IAAI,CAAC,OAAO,CAAC;aACb,MAAM,CAAC;YACP,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACrB,CAAC;aACD,UAAU,CAAC,6BAAkB,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE;YAChD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACrB,CAAC;aACD,OAAO,CAAC,EAAE,CAAC,CAAA;QAEb,MAAM,EAAE,CAAC,KAAK,CAAC,8BAA8B,GAAG,IAAA,yBAAc,EAAC,IAAA,0BAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE7F,OAAO,MAAM,GAAG,CAAC,CAAA;IAClB,CAAC;CACD;AApBD,gEAoBC"}
@@ -1,28 +0,0 @@
1
- import { Client } from '@contember/database';
2
- import { Acl, Input, Schema } from '@contember/schema';
3
- export declare type EntitiesRelationsInput = readonly {
4
- name: string;
5
- relations: EntitiesRelationsInput;
6
- }[];
7
- export interface EntitiesSelectorContext {
8
- db: Client;
9
- schema: Schema;
10
- identityVariables: Acl.VariablesMap;
11
- roles: string[];
12
- }
13
- export interface EntitiesSelectorInput {
14
- entity: string;
15
- filter: Input.Where;
16
- relations: EntitiesRelationsInput;
17
- }
18
- export interface EntitiesSelector {
19
- getEntities(context: EntitiesSelectorContext, input: EntitiesSelectorInput): Promise<EntitiesResult[]>;
20
- }
21
- interface EntitiesResultRelations {
22
- [relation: string]: EntitiesResult | EntitiesResult[] | null;
23
- }
24
- export declare type EntitiesResult = {
25
- id: string;
26
- } & EntitiesResultRelations;
27
- export {};
28
- //# sourceMappingURL=EntitiesSelector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntitiesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/model/dependencies/content/EntitiesSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAEtD,oBAAY,sBAAsB,GAAG,SAAS;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,sBAAsB,CAAA;CACjC,EAAE,CAAA;AAEH,MAAM,WAAW,uBAAuB;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,GAAG,CAAC,YAAY,CAAA;IACnC,KAAK,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,KAAK,CAAC,KAAK,CAAA;IACnB,SAAS,EAAE,sBAAsB,CAAA;CACjC;AAED,MAAM,WAAW,gBAAgB;IAChC,WAAW,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;CACtG;AAED,UAAU,uBAAuB;IAChC,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,EAAE,GAAG,IAAI,CAAA;CAC5D;AAED,oBAAY,cAAc,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;CACV,GAAG,uBAAuB,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=EntitiesSelector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntitiesSelector.js","sourceRoot":"","sources":["../../../../../src/model/dependencies/content/EntitiesSelector.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export * from './EntitiesSelector';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/model/dependencies/content/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/model/dependencies/content/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkC"}
@@ -1,10 +0,0 @@
1
- import { Schema } from '@contember/schema';
2
- import { Migration, ModificationHandlerFactory } from '@contember/schema-migrations';
3
- import { Stage } from '../dtos';
4
- import { DatabaseContext } from '../database';
5
- export declare class MigrationExecutor {
6
- private readonly modificationHandlerFactory;
7
- constructor(modificationHandlerFactory: ModificationHandlerFactory);
8
- execute(db: DatabaseContext, schema: Schema, stage: Stage, migration: Migration): Promise<Schema>;
9
- }
10
- //# sourceMappingURL=MigrationExecutor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MigrationExecutor.d.ts","sourceRoot":"","sources":["../../../../src/model/migrations/MigrationExecutor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEpF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,qBAAa,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAA1B,0BAA0B,EAAE,0BAA0B;IAEtE,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAqB9G"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MigrationExecutor = void 0;
4
- const database_1 = require("@contember/database");
5
- const database_migrations_1 = require("@contember/database-migrations");
6
- const helpers_1 = require("../helpers");
7
- class MigrationExecutor {
8
- constructor(modificationHandlerFactory) {
9
- this.modificationHandlerFactory = modificationHandlerFactory;
10
- }
11
- async execute(db, schema, stage, migration) {
12
- await db.client.query('SET search_path TO ' + (0, database_1.wrapIdentifier)((0, helpers_1.formatSchemaName)(stage)));
13
- const builder = (0, database_migrations_1.createMigrationBuilder)();
14
- for (let { modification, ...data } of migration.modifications) {
15
- const modificationHandler = this.modificationHandlerFactory.create(modification, data, schema, migration.formatVersion);
16
- await modificationHandler.createSql(builder);
17
- schema = modificationHandler.getSchemaUpdater()({ schema });
18
- }
19
- const sql = builder.getSql();
20
- await db.client.query(sql);
21
- return schema;
22
- }
23
- }
24
- exports.MigrationExecutor = MigrationExecutor;
25
- //# sourceMappingURL=MigrationExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MigrationExecutor.js","sourceRoot":"","sources":["../../../../src/model/migrations/MigrationExecutor.ts"],"names":[],"mappings":";;;AAAA,kDAAoD;AAGpD,wEAAuE;AAEvE,wCAA6C;AAG7C,MAAa,iBAAiB;IAC7B,YAA6B,0BAAsD;QAAtD,+BAA0B,GAA1B,0BAA0B,CAA4B;IAAG,CAAC;IAEhF,KAAK,CAAC,OAAO,CAAC,EAAmB,EAAE,MAAc,EAAE,KAAY,EAAE,SAAoB;QAC3F,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAA,yBAAc,EAAC,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEtF,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;QAExC,KAAK,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,aAAa,EAAE;YAC9D,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CACjE,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,SAAS,CAAC,aAAa,CACvB,CAAA;YACD,MAAM,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC5C,MAAM,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;SAC3D;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;QAE5B,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1B,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AAxBD,8CAwBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolverContext.d.ts","sourceRoot":"","sources":["../../../src/resolvers/ResolverContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBADpB,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,EACpC,oBAAoB,EAAE,oBAAoB;IAG/C,MAAM,CAClB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,eAAe,CAAC;CA2B3B;AAED,oBAAY,aAAa,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,eAAe,KAAK,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAEvF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC7C,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvG,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACpG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB"}
@@ -1,4 +0,0 @@
1
- import { MigrationBuilder } from '@contember/database-migrations';
2
- import { MigrationArgs } from '../';
3
- export default function (builder: MigrationBuilder, args: MigrationArgs): Promise<void>;
4
- //# sourceMappingURL=2020-03-27-130000-project-migrations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"2020-03-27-130000-project-migrations.d.ts","sourceRoot":"","sources":["2020-03-27-130000-project-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBAkB5E"}
@@ -1,4 +0,0 @@
1
- import { MigrationBuilder } from '@contember/database-migrations';
2
- import { MigrationArgs } from '..';
3
- export default function (builder: MigrationBuilder, args: MigrationArgs): Promise<void>;
4
- //# sourceMappingURL=2020-05-06-150000-composed-primary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"2020-05-06-150000-composed-primary.d.ts","sourceRoot":"","sources":["2020-05-06-150000-composed-primary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAQ,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAuC,aAAa,EAAE,MAAM,IAAI,CAAA;AAwDvE,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBA0H5E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"2020-05-06-150000-composed-primary.test.d.ts","sourceRoot":"","sources":["2020-05-06-150000-composed-primary.test.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import { MigrationBuilder } from '@contember/database-migrations';
2
- import { MigrationArgs } from '..';
3
- export default function (builder: MigrationBuilder, args: MigrationArgs): Promise<void>;
4
- //# sourceMappingURL=2020-06-01-103000-event-trigger-perf.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"2020-06-01-103000-event-trigger-perf.d.ts","sourceRoot":"","sources":["2020-06-01-103000-event-trigger-perf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAQ,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAuC,aAAa,EAAE,MAAM,IAAI,CAAA;AAcvE,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBAuG5E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"2020-06-01-103000-event-trigger-perf.test.d.ts","sourceRoot":"","sources":["2020-06-01-103000-event-trigger-perf.test.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import { MigrationBuilder } from '@contember/database-migrations';
2
- import { MigrationArgs } from '..';
3
- export default function (builder: MigrationBuilder, args: MigrationArgs): Promise<void>;
4
- //# sourceMappingURL=2021-05-07-155800-event-log-rework.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"2021-05-07-155800-event-log-rework.d.ts","sourceRoot":"","sources":["2021-05-07-155800-event-log-rework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAQ,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAuC,aAAa,EAAE,MAAM,IAAI,CAAA;AAgBvE,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBAoQ5E"}
@@ -1,4 +0,0 @@
1
- import { MigrationBuilder } from '@contember/database-migrations';
2
- import { MigrationArgs } from '..';
3
- export default function (builder: MigrationBuilder, args: MigrationArgs): Promise<void>;
4
- //# sourceMappingURL=2021-05-19-1232000-event-log-fix-constraint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"2021-05-19-1232000-event-log-fix-constraint.d.ts","sourceRoot":"","sources":["2021-05-19-1232000-event-log-fix-constraint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAQ,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAuC,aAAa,EAAE,MAAM,IAAI,CAAA;AAmBvE,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBAe5E"}
@@ -1,6 +0,0 @@
1
- CREATE INDEX event_data_created ON system.event_data (created_at);
2
- CREATE INDEX transaction_applied ON system.stage_transaction (applied_at);
3
-
4
- ALTER TABLE system.stage
5
- DROP event_id;
6
- DROP TABLE system.event_bak;