@contember/schema-migrations 1.3.0-rc.2 → 1.3.0

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 (125) hide show
  1. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  2. package/dist/src/SchemaDiffer.js +1 -2
  3. package/dist/src/SchemaDiffer.js.map +1 -1
  4. package/dist/src/modifications/differs/{RemoveChangedViewDiffer.d.ts → RemoveViewDiffer.d.ts} +5 -2
  5. package/dist/src/modifications/differs/RemoveViewDiffer.d.ts.map +1 -0
  6. package/dist/src/modifications/differs/RemoveViewDiffer.js +48 -0
  7. package/dist/src/modifications/differs/RemoveViewDiffer.js.map +1 -0
  8. package/dist/src/modifications/differs/index.d.ts +1 -2
  9. package/dist/src/modifications/differs/index.d.ts.map +1 -1
  10. package/dist/src/modifications/differs/index.js +1 -2
  11. package/dist/src/modifications/differs/index.js.map +1 -1
  12. package/dist/src/modifications/utils/viewDependencies.js +3 -3
  13. package/dist/src/tsconfig.tsbuildinfo +1 -1
  14. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +2 -2
  15. package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js.map +1 -1
  16. package/dist/tests/cases/integration/convertOneToManyRelation.test.js +24 -16
  17. package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
  18. package/dist/tests/cases/integration/createAndDropIndex.test.js +4 -4
  19. package/dist/tests/cases/integration/createAndDropIndex.test.js.map +1 -1
  20. package/dist/tests/cases/integration/createColumn.test.js +4 -4
  21. package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
  22. package/dist/tests/cases/integration/createEntity.test.js +11 -9
  23. package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
  24. package/dist/tests/cases/integration/createEnum.test.js +13 -9
  25. package/dist/tests/cases/integration/createEnum.test.js.map +1 -1
  26. package/dist/tests/cases/integration/createManyHasMany.test.js +11 -7
  27. package/dist/tests/cases/integration/createManyHasMany.test.js.map +1 -1
  28. package/dist/tests/cases/integration/createManyHasOne.test.js +13 -9
  29. package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
  30. package/dist/tests/cases/integration/createOneHasMany.test.js +10 -8
  31. package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
  32. package/dist/tests/cases/integration/createOneHasOne.test.js +9 -7
  33. package/dist/tests/cases/integration/createOneHasOne.test.js.map +1 -1
  34. package/dist/tests/cases/integration/createRelationInverseSide.test.js +24 -16
  35. package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
  36. package/dist/tests/cases/integration/createView.test.js +3 -3
  37. package/dist/tests/cases/integration/createView.test.js.map +1 -1
  38. package/dist/tests/cases/integration/disableOrphanRemoval.test.js +14 -10
  39. package/dist/tests/cases/integration/disableOrphanRemoval.test.js.map +1 -1
  40. package/dist/tests/cases/integration/enableOrphanRemoval.test.js +14 -10
  41. package/dist/tests/cases/integration/enableOrphanRemoval.test.js.map +1 -1
  42. package/dist/tests/cases/integration/makeColumnNotNull.test.js +10 -6
  43. package/dist/tests/cases/integration/makeColumnNotNull.test.js.map +1 -1
  44. package/dist/tests/cases/integration/makeRelationNotNull.test.js +14 -10
  45. package/dist/tests/cases/integration/makeRelationNotNull.test.js.map +1 -1
  46. package/dist/tests/cases/integration/makeRelationNullable.test.js +26 -18
  47. package/dist/tests/cases/integration/makeRelationNullable.test.js.map +1 -1
  48. package/dist/tests/cases/integration/patchAclSchema.test.js +21 -17
  49. package/dist/tests/cases/integration/patchAclSchema.test.js.map +1 -1
  50. package/dist/tests/cases/integration/removeEntity.test.js +60 -52
  51. package/dist/tests/cases/integration/removeEntity.test.js.map +1 -1
  52. package/dist/tests/cases/integration/removeEnum.test.js +13 -9
  53. package/dist/tests/cases/integration/removeEnum.test.js.map +1 -1
  54. package/dist/tests/cases/integration/removeField.test.js +71 -51
  55. package/dist/tests/cases/integration/removeField.test.js.map +1 -1
  56. package/dist/tests/cases/integration/toggleEventLog.test.js +4 -4
  57. package/dist/tests/cases/integration/toggleEventLog.test.js.map +1 -1
  58. package/dist/tests/cases/integration/toggleJunctionEventLog.test.js +4 -4
  59. package/dist/tests/cases/integration/toggleJunctionEventLog.test.js.map +1 -1
  60. package/dist/tests/cases/integration/updateColumnDefinition.test.js +18 -14
  61. package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
  62. package/dist/tests/cases/integration/updateEntityName.test.js +66 -50
  63. package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
  64. package/dist/tests/cases/integration/updateEntityOrderBy.test.js +4 -4
  65. package/dist/tests/cases/integration/updateEntityOrderBy.test.js.map +1 -1
  66. package/dist/tests/cases/integration/updateEnum.test.js +16 -12
  67. package/dist/tests/cases/integration/updateEnum.test.js.map +1 -1
  68. package/dist/tests/cases/integration/updateFieldName.test.js +120 -96
  69. package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
  70. package/dist/tests/cases/integration/updateRelationOnDelete.test.js +14 -10
  71. package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
  72. package/dist/tests/cases/integration/updateRelationOrderBy.test.js +15 -11
  73. package/dist/tests/cases/integration/updateRelationOrderBy.test.js.map +1 -1
  74. package/dist/tests/cases/integration/updateView.test.js +8 -8
  75. package/dist/tests/cases/integration/updateView.test.js.map +1 -1
  76. package/dist/tests/src/tests.d.ts +7 -9
  77. package/dist/tests/src/tests.d.ts.map +1 -1
  78. package/dist/tests/src/tests.js +13 -16
  79. package/dist/tests/src/tests.js.map +1 -1
  80. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +6 -6
  82. package/src/SchemaDiffer.ts +2 -3
  83. package/src/modifications/differs/{RemoveChangedViewDiffer.ts → RemoveViewDiffer.ts} +30 -7
  84. package/src/modifications/differs/index.ts +1 -2
  85. package/src/modifications/utils/viewDependencies.ts +3 -3
  86. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +3 -3
  87. package/tests/cases/integration/convertOneToManyRelation.test.ts +32 -24
  88. package/tests/cases/integration/createAndDropIndex.test.ts +5 -5
  89. package/tests/cases/integration/createColumn.test.ts +5 -5
  90. package/tests/cases/integration/createEntity.test.ts +14 -12
  91. package/tests/cases/integration/createEnum.test.ts +15 -11
  92. package/tests/cases/integration/createManyHasMany.test.ts +13 -9
  93. package/tests/cases/integration/createManyHasOne.test.ts +15 -11
  94. package/tests/cases/integration/createOneHasMany.test.ts +14 -12
  95. package/tests/cases/integration/createOneHasOne.test.ts +11 -9
  96. package/tests/cases/integration/createRelationInverseSide.test.ts +26 -18
  97. package/tests/cases/integration/createView.test.ts +4 -4
  98. package/tests/cases/integration/disableOrphanRemoval.test.ts +18 -14
  99. package/tests/cases/integration/enableOrphanRemoval.test.ts +18 -14
  100. package/tests/cases/integration/makeColumnNotNull.test.ts +10 -6
  101. package/tests/cases/integration/makeRelationNotNull.test.ts +18 -14
  102. package/tests/cases/integration/makeRelationNullable.test.ts +30 -22
  103. package/tests/cases/integration/patchAclSchema.test.ts +21 -17
  104. package/tests/cases/integration/removeEntity.test.ts +63 -55
  105. package/tests/cases/integration/removeEnum.test.ts +15 -11
  106. package/tests/cases/integration/removeField.test.ts +86 -66
  107. package/tests/cases/integration/toggleEventLog.test.ts +5 -5
  108. package/tests/cases/integration/toggleJunctionEventLog.test.ts +5 -5
  109. package/tests/cases/integration/updateColumnDefinition.test.ts +22 -18
  110. package/tests/cases/integration/updateEntityName.test.ts +67 -51
  111. package/tests/cases/integration/updateEntityOrderBy.test.ts +5 -5
  112. package/tests/cases/integration/updateEnum.test.ts +20 -16
  113. package/tests/cases/integration/updateFieldName.test.ts +126 -102
  114. package/tests/cases/integration/updateRelationOnDelete.test.ts +18 -14
  115. package/tests/cases/integration/updateRelationOrderBy.test.ts +23 -19
  116. package/tests/cases/integration/updateView.test.ts +9 -9
  117. package/tests/src/tests.ts +19 -29
  118. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.d.ts +0 -6
  119. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.d.ts.map +0 -1
  120. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js +0 -19
  121. package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js.map +0 -1
  122. package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts.map +0 -1
  123. package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +0 -33
  124. package/dist/src/modifications/differs/RemoveChangedViewDiffer.js.map +0 -1
  125. package/src/modifications/differs/ChangeViewNonViewDiffer.ts +0 -17
@@ -1,4 +1,4 @@
1
- import { SchemaDefinition as def } from '@contember/schema-definition'
1
+ import { createSchema, SchemaDefinition as def } from '@contember/schema-definition'
2
2
  import { testMigrations } from '../../src/tests'
3
3
  import { SQL } from '../../src/tags'
4
4
 
@@ -24,8 +24,8 @@ namespace EventLogDisabled {
24
24
  }
25
25
 
26
26
  testMigrations('event log junction - disable', {
27
- originalSchema: def.createModel(EventLogNoConfig),
28
- updatedSchema: def.createModel(EventLogDisabled),
27
+ original: createSchema(EventLogNoConfig),
28
+ updated: createSchema(EventLogDisabled),
29
29
  diff: [
30
30
  {
31
31
  modification: 'toggleJunctionEventLog',
@@ -39,8 +39,8 @@ testMigrations('event log junction - disable', {
39
39
  })
40
40
 
41
41
  testMigrations('event log junction - enable', {
42
- originalSchema: def.createModel(EventLogDisabled),
43
- updatedSchema: def.createModel(EventLogNoConfig),
42
+ original: createSchema(EventLogDisabled),
43
+ updated: createSchema(EventLogNoConfig),
44
44
  diff: [
45
45
  {
46
46
  modification: 'toggleJunctionEventLog',
@@ -5,18 +5,22 @@ import { SQL } from '../../src/tags'
5
5
  import { updateColumnDefinitionModification } from '../../../src'
6
6
 
7
7
  testMigrations('update column definition', {
8
- originalSchema: new SchemaBuilder()
9
- .entity('Author', e =>
10
- e.column('name', c => c.type(Model.ColumnType.String)).column('registeredAt', c => c.type(Model.ColumnType.Date)),
11
- )
12
- .buildSchema(),
13
- updatedSchema: new SchemaBuilder()
14
- .entity('Author', e =>
15
- e
16
- .column('name', c => c.type(Model.ColumnType.String))
17
- .column('registeredAt', c => c.type(Model.ColumnType.DateTime)),
18
- )
19
- .buildSchema(),
8
+ original: {
9
+ model: new SchemaBuilder()
10
+ .entity('Author', e =>
11
+ e.column('name', c => c.type(Model.ColumnType.String)).column('registeredAt', c => c.type(Model.ColumnType.Date)),
12
+ )
13
+ .buildSchema(),
14
+ },
15
+ updated: {
16
+ model: new SchemaBuilder()
17
+ .entity('Author', e =>
18
+ e
19
+ .column('name', c => c.type(Model.ColumnType.String))
20
+ .column('registeredAt', c => c.type(Model.ColumnType.DateTime)),
21
+ )
22
+ .buildSchema(),
23
+ },
20
24
  diff: [
21
25
  {
22
26
  modification: 'updateColumnDefinition',
@@ -44,8 +48,8 @@ namespace SeqUpdated {
44
48
  }
45
49
  }
46
50
  testMigrations('add sequence to existing column', {
47
- originalSchema: createSchema(SeqOrig).model,
48
- updatedSchema: createSchema(SeqUpdated).model,
51
+ original: createSchema(SeqOrig),
52
+ updated: createSchema(SeqUpdated),
49
53
  diff: [
50
54
  updateColumnDefinitionModification.createModification({
51
55
  entityName: 'Author',
@@ -108,8 +112,8 @@ namespace ViewColDepUpdated {
108
112
  }
109
113
 
110
114
  testMigrations('recreate view dependent on entity after changing column type', {
111
- originalSchema: createSchema(ViewColDepOrig).model,
112
- updatedSchema: createSchema(ViewColDepUpdated).model,
115
+ original: createSchema(ViewColDepOrig),
116
+ updated: createSchema(ViewColDepUpdated),
113
117
  diff: [{ modification: 'removeEntity', entityName: 'AuthorMetaY' }, {
114
118
  modification: 'removeEntity',
115
119
  entityName: 'AuthorMetaX',
@@ -181,8 +185,8 @@ namespace NotNullUpdated {
181
185
  }
182
186
  }
183
187
  testMigrations('set not null and fill', {
184
- originalSchema: createSchema(NotNullOrig).model,
185
- updatedSchema: createSchema(NotNullUpdated).model,
188
+ original: createSchema(NotNullOrig),
189
+ updated: createSchema(NotNullUpdated),
186
190
  noDiff: true,
187
191
  diff: [
188
192
  updateColumnDefinitionModification.createModification({
@@ -1,17 +1,21 @@
1
1
  import { testMigrations } from '../../src/tests'
2
- import { SchemaBuilder } from '@contember/schema-definition'
2
+ import { SchemaBuilder, c, createSchema } from '@contember/schema-definition'
3
3
  import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('rename entity without renaming a table', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Author', e => e.tableName('user').column('name', c => c.type(Model.ColumnType.String)))
9
- .entity('Post', e => e.column('title').manyHasOne('author', r => r.target('Author')))
10
- .buildSchema(),
11
- updatedSchema: new SchemaBuilder()
12
- .entity('User', e => e.column('name', c => c.type(Model.ColumnType.String)))
13
- .entity('Post', e => e.column('title').manyHasOne('author', r => r.target('User')))
14
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Author', e => e.tableName('user').column('name', c => c.type(Model.ColumnType.String)))
10
+ .entity('Post', e => e.column('title').manyHasOne('author', r => r.target('Author')))
11
+ .buildSchema(),
12
+ },
13
+ updated: {
14
+ model: new SchemaBuilder()
15
+ .entity('User', e => e.column('name', c => c.type(Model.ColumnType.String)))
16
+ .entity('Post', e => e.column('title').manyHasOne('author', r => r.target('User')))
17
+ .buildSchema(),
18
+ },
15
19
  diff: [
16
20
  {
17
21
  modification: 'updateEntityName',
@@ -24,12 +28,16 @@ testMigrations('rename entity without renaming a table', {
24
28
  })
25
29
 
26
30
  testMigrations('rename entity and table', {
27
- originalSchema: new SchemaBuilder()
28
- .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
29
- .buildSchema(),
30
- updatedSchema: new SchemaBuilder()
31
- .entity('User', e => e.column('name', c => c.type(Model.ColumnType.String)))
32
- .buildSchema(),
31
+ original: {
32
+ model: new SchemaBuilder()
33
+ .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
34
+ .buildSchema(),
35
+ },
36
+ updated: {
37
+ model: new SchemaBuilder()
38
+ .entity('User', e => e.column('name', c => c.type(Model.ColumnType.String)))
39
+ .buildSchema(),
40
+ },
33
41
  diff: [
34
42
  {
35
43
  modification: 'updateEntityName',
@@ -45,14 +53,18 @@ testMigrations('rename entity and table', {
45
53
 
46
54
 
47
55
  testMigrations('rename entity with one-has-one (constraint)', {
48
- originalSchema: new SchemaBuilder()
49
- .entity('Author', e => e.oneHasOne('content', r => r.target('Content')))
50
- .entity('Content', e => e.column('foo'))
51
- .buildSchema(),
52
- updatedSchema: new SchemaBuilder()
53
- .entity('User', e => e.tableName('author').oneHasOne('content', r => r.target('Content')))
54
- .entity('Content', e => e.column('foo'))
55
- .buildSchema(),
56
+ original: {
57
+ model: new SchemaBuilder()
58
+ .entity('Author', e => e.oneHasOne('content', r => r.target('Content')))
59
+ .entity('Content', e => e.column('foo'))
60
+ .buildSchema(),
61
+ },
62
+ updated: {
63
+ model: new SchemaBuilder()
64
+ .entity('User', e => e.tableName('author').oneHasOne('content', r => r.target('Content')))
65
+ .entity('Content', e => e.column('foo'))
66
+ .buildSchema(),
67
+ },
56
68
  diff: [
57
69
  {
58
70
  modification: 'updateEntityName',
@@ -65,20 +77,22 @@ testMigrations('rename entity with one-has-one (constraint)', {
65
77
  })
66
78
 
67
79
  testMigrations('rename table with acl', {
68
- originalSchema: new SchemaBuilder()
69
- .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
70
- .buildSchema(),
71
- originalAcl: {
72
- roles: {
73
- admin: {
74
- variables: {},
75
- stages: '*',
76
- entities: {
77
- Site: {
78
- predicates: {},
79
- operations: {
80
- read: {
81
- id: true,
80
+ original: {
81
+ model: new SchemaBuilder()
82
+ .entity('Site', entity => entity.column('name', c => c.type(Model.ColumnType.String)))
83
+ .buildSchema(),
84
+ acl: {
85
+ roles: {
86
+ admin: {
87
+ variables: {},
88
+ stages: '*',
89
+ entities: {
90
+ Site: {
91
+ predicates: {},
92
+ operations: {
93
+ read: {
94
+ id: true,
95
+ },
82
96
  },
83
97
  },
84
98
  },
@@ -86,20 +100,22 @@ testMigrations('rename table with acl', {
86
100
  },
87
101
  },
88
102
  },
89
- updatedSchema: new SchemaBuilder()
90
- .entity('Website', entity => entity.column('name', c => c.type(Model.ColumnType.String)).tableName('site'))
91
- .buildSchema(),
92
- updatedAcl: {
93
- roles: {
94
- admin: {
95
- variables: {},
96
- stages: '*',
97
- entities: {
98
- Website: {
99
- predicates: {},
100
- operations: {
101
- read: {
102
- id: true,
103
+ updated: {
104
+ model: new SchemaBuilder()
105
+ .entity('Website', entity => entity.column('name', c => c.type(Model.ColumnType.String)).tableName('site'))
106
+ .buildSchema(),
107
+ acl: {
108
+ roles: {
109
+ admin: {
110
+ variables: {},
111
+ stages: '*',
112
+ entities: {
113
+ Website: {
114
+ predicates: {},
115
+ operations: {
116
+ read: {
117
+ id: true,
118
+ },
103
119
  },
104
120
  },
105
121
  },
@@ -1,5 +1,5 @@
1
1
  import { testMigrations } from '../../src/tests'
2
- import { SchemaBuilder, SchemaDefinition as def } from '@contember/schema-definition'
2
+ import { createSchema, SchemaBuilder, SchemaDefinition as def } from '@contember/schema-definition'
3
3
  import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
@@ -18,8 +18,8 @@ namespace SchemaWithOrderBy {
18
18
  }
19
19
 
20
20
  testMigrations('update entity add order by', {
21
- originalSchema: def.createModel(SchemaWithoutOrderBy),
22
- updatedSchema: def.createModel(SchemaWithOrderBy),
21
+ original: createSchema(SchemaWithoutOrderBy),
22
+ updated: createSchema(SchemaWithOrderBy),
23
23
  diff: [
24
24
  {
25
25
  modification: 'updateEntityOrderBy',
@@ -31,8 +31,8 @@ testMigrations('update entity add order by', {
31
31
  })
32
32
 
33
33
  testMigrations('update entity remove order by', {
34
- originalSchema: def.createModel(SchemaWithOrderBy),
35
- updatedSchema: def.createModel(SchemaWithoutOrderBy),
34
+ original: createSchema(SchemaWithOrderBy),
35
+ updated: createSchema(SchemaWithoutOrderBy),
36
36
  diff: [
37
37
  {
38
38
  modification: 'updateEntityOrderBy',
@@ -4,22 +4,26 @@ import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('update enum', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Post', e =>
9
- e
10
- .column('title', c => c.type(Model.ColumnType.String))
11
- .column('status', c => c.type(Model.ColumnType.Enum, { enumName: 'postStatus' })),
12
- )
13
- .enum('postStatus', ['publish', 'draft', 'autodraft'])
14
- .buildSchema(),
15
- updatedSchema: new SchemaBuilder()
16
- .entity('Post', e =>
17
- e
18
- .column('title', c => c.type(Model.ColumnType.String))
19
- .column('status', c => c.type(Model.ColumnType.Enum, { enumName: 'postStatus' })),
20
- )
21
- .enum('postStatus', ['publish', 'draft'])
22
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Post', e =>
10
+ e
11
+ .column('title', c => c.type(Model.ColumnType.String))
12
+ .column('status', c => c.type(Model.ColumnType.Enum, { enumName: 'postStatus' })),
13
+ )
14
+ .enum('postStatus', ['publish', 'draft', 'autodraft'])
15
+ .buildSchema(),
16
+ },
17
+ updated: {
18
+ model: new SchemaBuilder()
19
+ .entity('Post', e =>
20
+ e
21
+ .column('title', c => c.type(Model.ColumnType.String))
22
+ .column('status', c => c.type(Model.ColumnType.Enum, { enumName: 'postStatus' })),
23
+ )
24
+ .enum('postStatus', ['publish', 'draft'])
25
+ .buildSchema(),
26
+ },
23
27
  diff: [
24
28
  {
25
29
  modification: 'updateEnum',
@@ -4,12 +4,16 @@ import { Acl, Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('rename a field', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Author', e => e.column('firstName', c => c.type(Model.ColumnType.String).columnName('name')))
9
- .buildSchema(),
10
- updatedSchema: new SchemaBuilder()
11
- .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
12
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Author', e => e.column('firstName', c => c.type(Model.ColumnType.String).columnName('name')))
10
+ .buildSchema(),
11
+ },
12
+ updated: {
13
+ model: new SchemaBuilder()
14
+ .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
15
+ .buildSchema(),
16
+ },
13
17
  diff: [
14
18
  {
15
19
  modification: 'updateFieldName',
@@ -23,12 +27,16 @@ testMigrations('rename a field', {
23
27
  })
24
28
 
25
29
  testMigrations('rename a field with column', {
26
- originalSchema: new SchemaBuilder()
27
- .entity('Author', e => e.column('firstName', c => c.type(Model.ColumnType.String)))
28
- .buildSchema(),
29
- updatedSchema: new SchemaBuilder()
30
- .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
31
- .buildSchema(),
30
+ original: {
31
+ model: new SchemaBuilder()
32
+ .entity('Author', e => e.column('firstName', c => c.type(Model.ColumnType.String)))
33
+ .buildSchema(),
34
+ },
35
+ updated: {
36
+ model: new SchemaBuilder()
37
+ .entity('Author', e => e.column('name', c => c.type(Model.ColumnType.String)))
38
+ .buildSchema(),
39
+ },
32
40
  diff: [
33
41
  {
34
42
  modification: 'updateFieldName',
@@ -45,14 +53,18 @@ testMigrations('rename a field with column', {
45
53
 
46
54
 
47
55
  testMigrations('rename a field with one-has-one', {
48
- originalSchema: new SchemaBuilder()
49
- .entity('Author', e => e.oneHasOne('content', r => r.target('Content')))
50
- .entity('Content', e => e.column('foo'))
51
- .buildSchema(),
52
- updatedSchema: new SchemaBuilder()
53
- .entity('Author', e => e.oneHasOne('description', r => r.target('Content').joiningColumn('content_id')))
54
- .entity('Content', e => e.column('foo'))
55
- .buildSchema(),
56
+ original: {
57
+ model: new SchemaBuilder()
58
+ .entity('Author', e => e.oneHasOne('content', r => r.target('Content')))
59
+ .entity('Content', e => e.column('foo'))
60
+ .buildSchema(),
61
+ },
62
+ updated: {
63
+ model: new SchemaBuilder()
64
+ .entity('Author', e => e.oneHasOne('description', r => r.target('Content').joiningColumn('content_id')))
65
+ .entity('Content', e => e.column('foo'))
66
+ .buildSchema(),
67
+ },
56
68
  diff: [
57
69
  {
58
70
  modification: 'updateFieldName',
@@ -66,16 +78,20 @@ testMigrations('rename a field with one-has-one', {
66
78
  })
67
79
 
68
80
  testMigrations('rename a relation', {
69
- originalSchema: new SchemaBuilder()
70
- .entity('Post', e => e.column('title').manyHasOne('user', r => r.target('Author').inversedBy('posts')))
71
- .entity('Author', e => e.column('name'))
72
- .buildSchema(),
73
- updatedSchema: new SchemaBuilder()
74
- .entity('Post', e =>
75
- e.column('title').manyHasOne('author', r => r.target('Author').inversedBy('posts').joiningColumn('user_id')),
76
- )
77
- .entity('Author', e => e.column('name'))
78
- .buildSchema(),
81
+ original: {
82
+ model: new SchemaBuilder()
83
+ .entity('Post', e => e.column('title').manyHasOne('user', r => r.target('Author').inversedBy('posts')))
84
+ .entity('Author', e => e.column('name'))
85
+ .buildSchema(),
86
+ },
87
+ updated: {
88
+ model: new SchemaBuilder()
89
+ .entity('Post', e =>
90
+ e.column('title').manyHasOne('author', r => r.target('Author').inversedBy('posts').joiningColumn('user_id')),
91
+ )
92
+ .entity('Author', e => e.column('name'))
93
+ .buildSchema(),
94
+ },
79
95
  diff: [
80
96
  {
81
97
  modification: 'updateFieldName',
@@ -90,16 +106,20 @@ testMigrations('rename a relation', {
90
106
 
91
107
 
92
108
  testMigrations('rename a relation with joining column', {
93
- originalSchema: new SchemaBuilder()
94
- .entity('Post', e => e.column('title').manyHasOne('user', r => r.target('Author').inversedBy('posts')))
95
- .entity('Author', e => e.column('name'))
96
- .buildSchema(),
97
- updatedSchema: new SchemaBuilder()
98
- .entity('Post', e =>
99
- e.column('title').manyHasOne('author', r => r.target('Author').inversedBy('posts')),
100
- )
101
- .entity('Author', e => e.column('name'))
102
- .buildSchema(),
109
+ original: {
110
+ model: new SchemaBuilder()
111
+ .entity('Post', e => e.column('title').manyHasOne('user', r => r.target('Author').inversedBy('posts')))
112
+ .entity('Author', e => e.column('name'))
113
+ .buildSchema(),
114
+ },
115
+ updated: {
116
+ model: new SchemaBuilder()
117
+ .entity('Post', e =>
118
+ e.column('title').manyHasOne('author', r => r.target('Author').inversedBy('posts')),
119
+ )
120
+ .entity('Author', e => e.column('name'))
121
+ .buildSchema(),
122
+ },
103
123
  diff: [
104
124
  {
105
125
  modification: 'updateFieldName',
@@ -115,39 +135,41 @@ testMigrations('rename a relation with joining column', {
115
135
 
116
136
 
117
137
  testMigrations('rename relation with acl', {
118
- originalSchema: new SchemaBuilder()
119
- .entity('Post', e => e.column('title').manyHasOne('user', r => r.target('Author').inversedBy('posts')))
120
- .entity('Comment', e => e.column('content').manyHasOne('post', r => r.target('Post')))
121
- .entity('Author', e => e.column('name'))
122
- .buildSchema(),
123
- originalAcl: {
124
- roles: {
125
- admin: {
126
- variables: {
127
- authorId: {
128
- type: Acl.VariableType.entity,
129
- entityName: 'Author',
130
- },
131
- },
132
- stages: '*',
133
- entities: {
134
- Post: {
135
- predicates: {
136
- author: { user: { id: 'authorId' } },
137
- },
138
- operations: {
139
- read: {
140
- title: 'author',
141
- },
138
+ original: {
139
+ model: new SchemaBuilder()
140
+ .entity('Post', e => e.column('title').manyHasOne('user', r => r.target('Author').inversedBy('posts')))
141
+ .entity('Comment', e => e.column('content').manyHasOne('post', r => r.target('Post')))
142
+ .entity('Author', e => e.column('name'))
143
+ .buildSchema(),
144
+ acl: {
145
+ roles: {
146
+ admin: {
147
+ variables: {
148
+ authorId: {
149
+ type: Acl.VariableType.entity,
150
+ entityName: 'Author',
142
151
  },
143
152
  },
144
- Comment: {
145
- predicates: {
146
- postAuthor: { post: { user: { id: 'authorId' } } },
153
+ stages: '*',
154
+ entities: {
155
+ Post: {
156
+ predicates: {
157
+ author: { user: { id: 'authorId' } },
158
+ },
159
+ operations: {
160
+ read: {
161
+ title: 'author',
162
+ },
163
+ },
147
164
  },
148
- operations: {
149
- read: {
150
- content: 'postAuthor',
165
+ Comment: {
166
+ predicates: {
167
+ postAuthor: { post: { user: { id: 'authorId' } } },
168
+ },
169
+ operations: {
170
+ read: {
171
+ content: 'postAuthor',
172
+ },
151
173
  },
152
174
  },
153
175
  },
@@ -155,41 +177,43 @@ testMigrations('rename relation with acl', {
155
177
  },
156
178
  },
157
179
  },
158
- updatedSchema: new SchemaBuilder()
159
- .entity('Post', e =>
160
- e.column('title').manyHasOne('author', r => r.target('Author').inversedBy('posts').joiningColumn('user_id')),
161
- )
162
- .entity('Comment', e => e.column('content').manyHasOne('post', r => r.target('Post')))
163
- .entity('Author', e => e.column('name'))
164
- .buildSchema(),
165
- updatedAcl: {
166
- roles: {
167
- admin: {
168
- variables: {
169
- authorId: {
170
- type: Acl.VariableType.entity,
171
- entityName: 'Author',
172
- },
173
- },
174
- stages: '*',
175
- entities: {
176
- Post: {
177
- predicates: {
178
- author: { author: { id: 'authorId' } },
179
- },
180
- operations: {
181
- read: {
182
- title: 'author',
183
- },
180
+ updated: {
181
+ model: new SchemaBuilder()
182
+ .entity('Post', e =>
183
+ e.column('title').manyHasOne('author', r => r.target('Author').inversedBy('posts').joiningColumn('user_id')),
184
+ )
185
+ .entity('Comment', e => e.column('content').manyHasOne('post', r => r.target('Post')))
186
+ .entity('Author', e => e.column('name'))
187
+ .buildSchema(),
188
+ acl: {
189
+ roles: {
190
+ admin: {
191
+ variables: {
192
+ authorId: {
193
+ type: Acl.VariableType.entity,
194
+ entityName: 'Author',
184
195
  },
185
196
  },
186
- Comment: {
187
- predicates: {
188
- postAuthor: { post: { author: { id: 'authorId' } } },
197
+ stages: '*',
198
+ entities: {
199
+ Post: {
200
+ predicates: {
201
+ author: { author: { id: 'authorId' } },
202
+ },
203
+ operations: {
204
+ read: {
205
+ title: 'author',
206
+ },
207
+ },
189
208
  },
190
- operations: {
191
- read: {
192
- content: 'postAuthor',
209
+ Comment: {
210
+ predicates: {
211
+ postAuthor: { post: { author: { id: 'authorId' } } },
212
+ },
213
+ operations: {
214
+ read: {
215
+ content: 'postAuthor',
216
+ },
193
217
  },
194
218
  },
195
219
  },
@@ -4,20 +4,24 @@ import { Model } from '@contember/schema'
4
4
  import { SQL } from '../../src/tags'
5
5
 
6
6
  testMigrations('update relation ondelete to cascade', {
7
- originalSchema: new SchemaBuilder()
8
- .entity('Post', entity =>
9
- entity.column('name', c => c.type(Model.ColumnType.String)).manyHasOne('category', r => r.target('Category')),
10
- )
11
- .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
12
- .buildSchema(),
13
- updatedSchema: new SchemaBuilder()
14
- .entity('Post', entity =>
15
- entity
16
- .column('name', c => c.type(Model.ColumnType.String))
17
- .manyHasOne('category', r => r.target('Category').onDelete(Model.OnDelete.cascade)),
18
- )
19
- .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
20
- .buildSchema(),
7
+ original: {
8
+ model: new SchemaBuilder()
9
+ .entity('Post', entity =>
10
+ entity.column('name', c => c.type(Model.ColumnType.String)).manyHasOne('category', r => r.target('Category')),
11
+ )
12
+ .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
13
+ .buildSchema(),
14
+ },
15
+ updated: {
16
+ model: new SchemaBuilder()
17
+ .entity('Post', entity =>
18
+ entity
19
+ .column('name', c => c.type(Model.ColumnType.String))
20
+ .manyHasOne('category', r => r.target('Category').onDelete(Model.OnDelete.cascade)),
21
+ )
22
+ .entity('Category', e => e.column('name', c => c.type(Model.ColumnType.String)))
23
+ .buildSchema(),
24
+ },
21
25
  diff: [
22
26
  {
23
27
  modification: 'updateRelationOnDelete',