@contember/schema-migrations 1.2.1 → 1.3.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/src/MigrationCreator.js +2 -2
  2. package/dist/src/MigrationCreator.js.map +1 -1
  3. package/dist/src/MigrationFilesManager.js +2 -2
  4. package/dist/src/MigrationFilesManager.js.map +1 -1
  5. package/dist/src/MigrationsResolver.js +3 -3
  6. package/dist/src/MigrationsResolver.js.map +1 -1
  7. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  8. package/dist/src/SchemaDiffer.js +11 -0
  9. package/dist/src/SchemaDiffer.js.map +1 -1
  10. package/dist/src/index.d.ts +1 -1
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +3 -1
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  15. package/dist/src/modifications/ModificationHandlerFactory.js +12 -0
  16. package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
  17. package/dist/src/modifications/ModificationVersions.d.ts +2 -1
  18. package/dist/src/modifications/ModificationVersions.d.ts.map +1 -1
  19. package/dist/src/modifications/ModificationVersions.js +3 -2
  20. package/dist/src/modifications/ModificationVersions.js.map +1 -1
  21. package/dist/src/modifications/actions/CreateTargetModification.d.ts +21 -0
  22. package/dist/src/modifications/actions/CreateTargetModification.d.ts.map +1 -0
  23. package/dist/src/modifications/actions/CreateTargetModification.js +40 -0
  24. package/dist/src/modifications/actions/CreateTargetModification.js.map +1 -0
  25. package/dist/src/modifications/actions/CreateTriggerModification.d.ts +21 -0
  26. package/dist/src/modifications/actions/CreateTriggerModification.d.ts.map +1 -0
  27. package/dist/src/modifications/actions/CreateTriggerModification.js +40 -0
  28. package/dist/src/modifications/actions/CreateTriggerModification.js.map +1 -0
  29. package/dist/src/modifications/actions/RemoveTargetModification.d.ts +21 -0
  30. package/dist/src/modifications/actions/RemoveTargetModification.d.ts.map +1 -0
  31. package/dist/src/modifications/actions/RemoveTargetModification.js +40 -0
  32. package/dist/src/modifications/actions/RemoveTargetModification.js.map +1 -0
  33. package/dist/src/modifications/actions/RemoveTriggerModification.d.ts +21 -0
  34. package/dist/src/modifications/actions/RemoveTriggerModification.d.ts.map +1 -0
  35. package/dist/src/modifications/actions/RemoveTriggerModification.js +40 -0
  36. package/dist/src/modifications/actions/RemoveTriggerModification.js.map +1 -0
  37. package/dist/src/modifications/actions/UpdateTargetModification.d.ts +22 -0
  38. package/dist/src/modifications/actions/UpdateTargetModification.d.ts.map +1 -0
  39. package/dist/src/modifications/actions/UpdateTargetModification.js +46 -0
  40. package/dist/src/modifications/actions/UpdateTargetModification.js.map +1 -0
  41. package/dist/src/modifications/actions/UpdateTriggerModification.d.ts +21 -0
  42. package/dist/src/modifications/actions/UpdateTriggerModification.d.ts.map +1 -0
  43. package/dist/src/modifications/actions/UpdateTriggerModification.js +46 -0
  44. package/dist/src/modifications/actions/UpdateTriggerModification.js.map +1 -0
  45. package/dist/src/modifications/actions/index.d.ts +4 -0
  46. package/dist/src/modifications/actions/index.d.ts.map +1 -0
  47. package/dist/src/modifications/actions/index.js +20 -0
  48. package/dist/src/modifications/actions/index.js.map +1 -0
  49. package/dist/src/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  50. package/dist/src/modifications/entities/UpdateEntityNameModification.js +15 -0
  51. package/dist/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  52. package/dist/src/modifications/entities/UpdateEntityOrderByModification.d.ts +23 -0
  53. package/dist/src/modifications/entities/UpdateEntityOrderByModification.d.ts.map +1 -0
  54. package/dist/src/modifications/entities/UpdateEntityOrderByModification.js +63 -0
  55. package/dist/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -0
  56. package/dist/src/modifications/entities/index.d.ts +1 -0
  57. package/dist/src/modifications/entities/index.d.ts.map +1 -1
  58. package/dist/src/modifications/entities/index.js +1 -0
  59. package/dist/src/modifications/entities/index.js.map +1 -1
  60. package/dist/src/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  61. package/dist/src/modifications/fields/UpdateFieldNameModification.js +15 -0
  62. package/dist/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  63. package/dist/src/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  64. package/dist/src/modifications/relations/CreateRelationModification.js +2 -10
  65. package/dist/src/modifications/relations/CreateRelationModification.js.map +1 -1
  66. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  67. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js +20 -1
  68. package/dist/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  69. package/dist/src/modifications/relations/helpers.d.ts +10 -0
  70. package/dist/src/modifications/relations/helpers.d.ts.map +1 -0
  71. package/dist/src/modifications/relations/helpers.js +26 -0
  72. package/dist/src/modifications/relations/helpers.js.map +1 -0
  73. package/dist/src/tsconfig.tsbuildinfo +1 -1
  74. package/dist/tests/cases/integration/createManyHasOne.test.js +1 -1
  75. package/dist/tests/cases/integration/createRelationInverseSide.test.js +1 -1
  76. package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
  77. package/dist/tests/cases/integration/takenIndexName.test.js +2 -2
  78. package/dist/tests/cases/integration/updateEntityName.test.js +20 -0
  79. package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
  80. package/dist/tests/cases/integration/updateEntityOrderBy.test.d.ts +2 -0
  81. package/dist/tests/cases/integration/updateEntityOrderBy.test.d.ts.map +1 -0
  82. package/dist/tests/cases/integration/updateEntityOrderBy.test.js +57 -0
  83. package/dist/tests/cases/integration/updateEntityOrderBy.test.js.map +1 -0
  84. package/dist/tests/cases/integration/updateFieldName.test.js +21 -0
  85. package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
  86. package/dist/tests/cases/integration/updateRelationOnDelete.test.js +2 -1
  87. package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
  88. package/dist/tests/src/tests.d.ts.map +1 -1
  89. package/dist/tests/src/tests.js +4 -6
  90. package/dist/tests/src/tests.js.map +1 -1
  91. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +7 -6
  93. package/src/MigrationCreator.ts +1 -1
  94. package/src/MigrationFilesManager.ts +1 -1
  95. package/src/MigrationsResolver.ts +1 -1
  96. package/src/SchemaDiffer.ts +12 -0
  97. package/src/index.ts +1 -1
  98. package/src/modifications/ModificationHandlerFactory.ts +12 -0
  99. package/src/modifications/ModificationVersions.ts +2 -1
  100. package/src/modifications/actions/CreateTargetModification.ts +46 -0
  101. package/src/modifications/actions/CreateTriggerModification.ts +46 -0
  102. package/src/modifications/actions/RemoveTargetModification.ts +46 -0
  103. package/src/modifications/actions/RemoveTriggerModification.ts +46 -0
  104. package/src/modifications/actions/UpdateTargetModification.ts +51 -0
  105. package/src/modifications/actions/UpdateTriggerModification.ts +49 -0
  106. package/src/modifications/actions/index.ts +3 -0
  107. package/src/modifications/entities/UpdateEntityNameModification.ts +23 -2
  108. package/src/modifications/entities/UpdateEntityOrderByModification.ts +68 -0
  109. package/src/modifications/entities/index.ts +1 -0
  110. package/src/modifications/fields/UpdateFieldNameModification.ts +22 -1
  111. package/src/modifications/relations/CreateRelationModification.ts +2 -15
  112. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +20 -1
  113. package/src/modifications/relations/helpers.ts +34 -0
  114. package/src/tsconfig.json +5 -12
  115. package/tests/cases/integration/createManyHasOne.test.ts +1 -1
  116. package/tests/cases/integration/createRelationInverseSide.test.ts +1 -1
  117. package/tests/cases/integration/takenIndexName.test.ts +2 -2
  118. package/tests/cases/integration/updateEntityName.test.ts +21 -0
  119. package/tests/cases/integration/updateEntityOrderBy.test.ts +43 -0
  120. package/tests/cases/integration/updateFieldName.test.ts +22 -0
  121. package/tests/cases/integration/updateRelationOnDelete.test.ts +2 -1
  122. package/tests/src/tests.ts +5 -7
  123. package/tests/tsconfig.json +2 -6
  124. package/dist/src/MigrationVersionHelper.d.ts +0 -9
  125. package/dist/src/MigrationVersionHelper.d.ts.map +0 -1
  126. package/dist/src/MigrationVersionHelper.js +0 -45
  127. package/dist/src/MigrationVersionHelper.js.map +0 -1
  128. package/src/MigrationVersionHelper.ts +0 -46
@@ -138,7 +138,7 @@ CREATE CONSTRAINT TRIGGER "log_event_trx"
138
138
  ALTER TABLE "post"
139
139
  ADD "author_id" uuid;
140
140
  ALTER TABLE "post"
141
- ADD CONSTRAINT "fk_post_author_id_87ef9a" FOREIGN KEY ("author_id") REFERENCES "author"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
141
+ ADD CONSTRAINT "fk_post_author_id_87ef9a" FOREIGN KEY ("author_id") REFERENCES "author"("id") ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE;
142
142
  CREATE INDEX "post_author_id_index" ON "post" ("author_id");
143
143
  ALTER TABLE "post" RENAME TO "article";
144
144
  CREATE TABLE "post" (
@@ -156,7 +156,7 @@ CREATE CONSTRAINT TRIGGER "log_event_trx"
156
156
  ALTER TABLE "post"
157
157
  ADD "author_id" uuid;
158
158
  ALTER TABLE "post"
159
- ADD CONSTRAINT "fk_post_author_id_87ef9a" FOREIGN KEY ("author_id") REFERENCES "author"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
159
+ ADD CONSTRAINT "fk_post_author_id_87ef9a" FOREIGN KEY ("author_id") REFERENCES "author"("id") ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE;
160
160
  CREATE INDEX "post_author_id_index1" ON "post" ("author_id");`)
161
161
  })
162
162
 
@@ -62,6 +62,27 @@ testMigrations('rename entity with a constraint', {
62
62
  noDiff: true,
63
63
  })
64
64
 
65
+ testMigrations('rename entity with one-has-one (constraint)', {
66
+ originalSchema: new SchemaBuilder()
67
+ .entity('Author', e => e.oneHasOne('content', r => r.target('Content')))
68
+ .entity('Content', e => e.column('foo'))
69
+ .buildSchema(),
70
+ updatedSchema: new SchemaBuilder()
71
+ .entity('User', e => e.tableName('author').oneHasOne('content', r => r.target('Content')))
72
+ .entity('Content', e => e.column('foo'))
73
+ .buildSchema(),
74
+ diff: [
75
+ {
76
+ modification: 'updateEntityName',
77
+ entityName: 'Author',
78
+ newEntityName: 'User',
79
+ },
80
+ ],
81
+ sql: SQL`ALTER TABLE "author"
82
+ RENAME CONSTRAINT "unique_Author_content_b64856" TO "unique_User_content_43c77f";`,
83
+ noDiff: true,
84
+ })
85
+
65
86
  testMigrations('rename table with acl', {
66
87
  originalSchema: new SchemaBuilder()
67
88
  .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
@@ -0,0 +1,43 @@
1
+ import { testMigrations } from '../../src/tests'
2
+ import { SchemaBuilder, SchemaDefinition as def } from '@contember/schema-definition'
3
+ import { Model } from '@contember/schema'
4
+ import { SQL } from '../../src/tags'
5
+
6
+
7
+ namespace SchemaWithoutOrderBy {
8
+ export class Article {
9
+ title = def.stringColumn()
10
+ }
11
+ }
12
+
13
+ namespace SchemaWithOrderBy {
14
+ @def.OrderBy('title', Model.OrderDirection.asc)
15
+ export class Article {
16
+ title = def.stringColumn()
17
+ }
18
+ }
19
+
20
+ testMigrations('update entity add order by', {
21
+ originalSchema: def.createModel(SchemaWithoutOrderBy),
22
+ updatedSchema: def.createModel(SchemaWithOrderBy),
23
+ diff: [
24
+ {
25
+ modification: 'updateEntityOrderBy',
26
+ entityName: 'Article',
27
+ orderBy: [{ path: ['title'], direction: 'asc' }],
28
+ },
29
+ ],
30
+ sql: SQL``,
31
+ })
32
+
33
+ testMigrations('update entity remove order by', {
34
+ originalSchema: def.createModel(SchemaWithOrderBy),
35
+ updatedSchema: def.createModel(SchemaWithoutOrderBy),
36
+ diff: [
37
+ {
38
+ modification: 'updateEntityOrderBy',
39
+ entityName: 'Article',
40
+ },
41
+ ],
42
+ sql: SQL``,
43
+ })
@@ -63,6 +63,28 @@ testMigrations('rename a field with a constraint', {
63
63
  noDiff: true,
64
64
  })
65
65
 
66
+ testMigrations('rename a field with one-has-one', {
67
+ originalSchema: new SchemaBuilder()
68
+ .entity('Author', e => e.oneHasOne('content', r => r.target('Content')))
69
+ .entity('Content', e => e.column('foo'))
70
+ .buildSchema(),
71
+ updatedSchema: new SchemaBuilder()
72
+ .entity('Author', e => e.oneHasOne('description', r => r.target('Content').joiningColumn('content_id')))
73
+ .entity('Content', e => e.column('foo'))
74
+ .buildSchema(),
75
+ diff: [
76
+ {
77
+ modification: 'updateFieldName',
78
+ entityName: 'Author',
79
+ fieldName: 'content',
80
+ newFieldName: 'description',
81
+ },
82
+ ],
83
+ sql: SQL`ALTER TABLE "author"
84
+ RENAME CONSTRAINT "unique_Author_content_b64856" TO "unique_Author_description_00f1ef";`,
85
+ noDiff: true,
86
+ })
87
+
66
88
  testMigrations('rename a relation', {
67
89
  originalSchema: new SchemaBuilder()
68
90
  .entity('Post', e => e.column('title').manyHasOne('user', r => r.target('Author').inversedBy('posts')))
@@ -26,5 +26,6 @@ testMigrations('update relation ondelete to cascade', {
26
26
  onDelete: Model.OnDelete.cascade,
27
27
  },
28
28
  ],
29
- sql: SQL``,
29
+ sql: SQL`ALTER TABLE "post" DROP CONSTRAINT "fk_post_category_id_820029";
30
+ ALTER TABLE "post" ADD CONSTRAINT "fk_post_category_id_820029" FOREIGN KEY ("category_id") REFERENCES "category"("id") ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;`,
30
31
  })
@@ -29,8 +29,8 @@ export function testDiffSchemas(
29
29
  updatedAcl: Acl.Schema = emptyAcl,
30
30
  ) {
31
31
  const actualDiff = schemaDiffer.diffSchemas(
32
- { ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
33
- { ...emptySchema, model: updatedModel, acl: updatedAcl, validation: {} },
32
+ { ...emptySchema, model: originalModel, acl: originalAcl },
33
+ { ...emptySchema, model: updatedModel, acl: updatedAcl },
34
34
  { skipRecreateValidation: true },
35
35
  )
36
36
  try {
@@ -41,7 +41,7 @@ export function testDiffSchemas(
41
41
  throw e
42
42
  }
43
43
  const { meta, ...schema } = schemaMigrator.applyModifications(
44
- { ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
44
+ { ...emptySchema, model: originalModel, acl: originalAcl },
45
45
  actualDiff,
46
46
  VERSION_LATEST,
47
47
  ) as SchemaWithMeta
@@ -49,7 +49,6 @@ export function testDiffSchemas(
49
49
  ...emptySchema,
50
50
  model: updatedModel,
51
51
  acl: updatedAcl,
52
- validation: {},
53
52
  })
54
53
  }
55
54
 
@@ -61,7 +60,7 @@ export function testApplyDiff(
61
60
  expectedAcl: Acl.Schema = emptyAcl,
62
61
  ) {
63
62
  const { meta, ...actualSchema } = schemaMigrator.applyModifications(
64
- { ...emptySchema, model: originalModel, acl: originalAcl, validation: {} },
63
+ { ...emptySchema, model: originalModel, acl: originalAcl },
65
64
  diff,
66
65
  VERSION_LATEST,
67
66
  ) as SchemaWithMeta
@@ -70,12 +69,11 @@ export function testApplyDiff(
70
69
  ...emptySchema,
71
70
  model: expectedModel,
72
71
  acl: expectedAcl,
73
- validation: {},
74
72
  })
75
73
  }
76
74
 
77
75
  export function testGenerateSql(originalSchema: Model.Schema, diff: Migration.Modification[], expectedSql: string) {
78
- let schema = { ...emptySchema, model: originalSchema, acl: emptyAcl, validation: {} }
76
+ let schema = { ...emptySchema, model: originalSchema, acl: emptyAcl }
79
77
  const builder = createMigrationBuilder()
80
78
  for (let { modification, ...data } of diff) {
81
79
  const modificationHandler = modificationFactory.create(modification, data, schema, { formatVersion: VERSION_LATEST, systemSchema: 'system' })
@@ -5,11 +5,7 @@
5
5
  "esModuleInterop": true
6
6
  },
7
7
  "references": [
8
- {
9
- "path": "../src"
10
- },
11
- {
12
- "path": "../../schema-definition/src"
13
- }
8
+ { "path": "../src" },
9
+ { "path": "../../schema-definition/src" }
14
10
  ]
15
11
  }
@@ -1,9 +0,0 @@
1
- export declare class MigrationVersionHelper {
2
- static prefixLength: number;
3
- static extractVersion(filename: string): string;
4
- static createVersion(name: string, increment?: number): [string, string];
5
- static extractName(filename: string): string;
6
- private static createTimePrefix;
7
- private static normalizeMigrationLabel;
8
- }
9
- //# sourceMappingURL=MigrationVersionHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MigrationVersionHelper.d.ts","sourceRoot":"","sources":["../../src/MigrationVersionHelper.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAsB;IAClC,OAAc,YAAY,SAA6B;WAEzC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;WAIxC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;WAMpE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAyB/B,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAGtC"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MigrationVersionHelper = void 0;
4
- class MigrationVersionHelper {
5
- static extractVersion(filename) {
6
- return filename.substring(0, this.prefixLength);
7
- }
8
- static createVersion(name, increment = 0) {
9
- const normalizedName = MigrationVersionHelper.normalizeMigrationLabel(name);
10
- const version = MigrationVersionHelper.createTimePrefix(increment);
11
- return [version, `${version}-${normalizedName}`];
12
- }
13
- static extractName(filename) {
14
- return filename.substring(0, filename.lastIndexOf('.'));
15
- }
16
- static createTimePrefix(increment) {
17
- const now = new Date();
18
- now.setSeconds(now.getSeconds() + increment);
19
- const year = now.getFullYear();
20
- const month = (now.getMonth() + 1).toString().padStart(2, '0');
21
- const day = now //
22
- .getDate()
23
- .toString()
24
- .padStart(2, '0');
25
- const hours = now //
26
- .getHours()
27
- .toString()
28
- .padStart(2, '0');
29
- const minutes = now //
30
- .getMinutes()
31
- .toString()
32
- .padStart(2, '0');
33
- const seconds = now //
34
- .getSeconds()
35
- .toString()
36
- .padStart(2, '0');
37
- return `${year}-${month}-${day}-${hours}${minutes}${seconds}`;
38
- }
39
- static normalizeMigrationLabel(name) {
40
- return name.toLowerCase().replace(/[^a-z0-9]+/g, '-');
41
- }
42
- }
43
- exports.MigrationVersionHelper = MigrationVersionHelper;
44
- MigrationVersionHelper.prefixLength = 'YYYY-MM-DD-HHIISS'.length;
45
- //# sourceMappingURL=MigrationVersionHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MigrationVersionHelper.js","sourceRoot":"","sources":["../../src/MigrationVersionHelper.ts"],"names":[],"mappings":";;;AAAA,MAAa,sBAAsB;IAG3B,MAAM,CAAC,cAAc,CAAC,QAAgB;QAC5C,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAChD,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,YAAoB,CAAC;QAC9D,MAAM,cAAc,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAClE,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,IAAI,cAAc,EAAE,CAAC,CAAA;IACjD,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,QAAgB;QACzC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,SAAiB;QAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,CAAA;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE;aAChB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAClB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE;aAClB,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAClB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE;aACpB,UAAU,EAAE;aACZ,QAAQ,EAAE;aACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAClB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE;aACpB,UAAU,EAAE;aACZ,QAAQ,EAAE;aACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAElB,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,OAAO,GAAG,OAAO,EAAE,CAAA;IAC9D,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,IAAY;QAClD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IACtD,CAAC;;AA5CF,wDA6CC;AA5Cc,mCAAY,GAAG,mBAAmB,CAAC,MAAM,CAAA"}
@@ -1,46 +0,0 @@
1
- export class MigrationVersionHelper {
2
- public static prefixLength = 'YYYY-MM-DD-HHIISS'.length
3
-
4
- public static extractVersion(filename: string): string {
5
- return filename.substring(0, this.prefixLength)
6
- }
7
-
8
- public static createVersion(name: string, increment: number = 0): [string, string] {
9
- const normalizedName = MigrationVersionHelper.normalizeMigrationLabel(name)
10
- const version = MigrationVersionHelper.createTimePrefix(increment)
11
- return [version, `${version}-${normalizedName}`]
12
- }
13
-
14
- public static extractName(filename: string): string {
15
- return filename.substring(0, filename.lastIndexOf('.'))
16
- }
17
-
18
- private static createTimePrefix(increment: number): string {
19
- const now = new Date()
20
- now.setSeconds(now.getSeconds() + increment)
21
- const year = now.getFullYear()
22
- const month = (now.getMonth() + 1).toString().padStart(2, '0')
23
- const day = now //
24
- .getDate()
25
- .toString()
26
- .padStart(2, '0')
27
- const hours = now //
28
- .getHours()
29
- .toString()
30
- .padStart(2, '0')
31
- const minutes = now //
32
- .getMinutes()
33
- .toString()
34
- .padStart(2, '0')
35
- const seconds = now //
36
- .getSeconds()
37
- .toString()
38
- .padStart(2, '0')
39
-
40
- return `${year}-${month}-${day}-${hours}${minutes}${seconds}`
41
- }
42
-
43
- private static normalizeMigrationLabel(name: string) {
44
- return name.toLowerCase().replace(/[^a-z0-9]+/g, '-')
45
- }
46
- }