@anthonyalayo/drizzle-kit 1.0.2 → 1.0.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 (172) hide show
  1. package/api.d.mts +2891 -0
  2. package/api.d.ts +2891 -0
  3. package/api.js +47534 -0
  4. package/api.mjs +47521 -0
  5. package/bin.cjs +80043 -0
  6. package/{src/index.ts → index-Z-1TKnbX.d.mts} +123 -141
  7. package/index-Z-1TKnbX.d.ts +308 -0
  8. package/index.d.mts +2 -0
  9. package/index.d.ts +2 -0
  10. package/index.js +32 -0
  11. package/index.mjs +7 -0
  12. package/package.json +1 -1
  13. package/utils.js +6056 -0
  14. package/utils.mjs +6032 -0
  15. package/.gitignore +0 -25
  16. package/build.dev.ts +0 -51
  17. package/build.ts +0 -112
  18. package/imports-checker/analyze.ts +0 -78
  19. package/imports-checker/checker.ts +0 -296
  20. package/imports-checker/grammar/grammar.ohm +0 -121
  21. package/imports-checker/grammar/grammar.ohm-bundle.d.ts +0 -164
  22. package/imports-checker/grammar/grammar.ohm-bundle.js +0 -753
  23. package/imports-checker/index.ts +0 -48
  24. package/patches/difflib@0.2.4.patch +0 -31
  25. package/src/@types/utils.ts +0 -58
  26. package/src/api.ts +0 -504
  27. package/src/cli/commands/_es5.ts +0 -2
  28. package/src/cli/commands/check.ts +0 -52
  29. package/src/cli/commands/drop.ts +0 -60
  30. package/src/cli/commands/introspect.ts +0 -772
  31. package/src/cli/commands/libSqlPushUtils.ts +0 -355
  32. package/src/cli/commands/migrate.ts +0 -1526
  33. package/src/cli/commands/mysqlIntrospect.ts +0 -53
  34. package/src/cli/commands/mysqlPushUtils.ts +0 -352
  35. package/src/cli/commands/mysqlUp.ts +0 -102
  36. package/src/cli/commands/pgIntrospect.ts +0 -55
  37. package/src/cli/commands/pgPushUtils.ts +0 -269
  38. package/src/cli/commands/pgUp.ts +0 -217
  39. package/src/cli/commands/push.ts +0 -637
  40. package/src/cli/commands/singlestoreIntrospect.ts +0 -53
  41. package/src/cli/commands/singlestorePushUtils.ts +0 -456
  42. package/src/cli/commands/singlestoreUp.ts +0 -1
  43. package/src/cli/commands/sqliteIntrospect.ts +0 -96
  44. package/src/cli/commands/sqlitePushUtils.ts +0 -322
  45. package/src/cli/commands/sqliteUp.ts +0 -52
  46. package/src/cli/commands/utils.ts +0 -858
  47. package/src/cli/connections.ts +0 -914
  48. package/src/cli/index.ts +0 -48
  49. package/src/cli/schema.ts +0 -794
  50. package/src/cli/selector-ui.ts +0 -38
  51. package/src/cli/utils.ts +0 -112
  52. package/src/cli/validations/cli.ts +0 -79
  53. package/src/cli/validations/common.ts +0 -193
  54. package/src/cli/validations/libsql.ts +0 -27
  55. package/src/cli/validations/mysql.ts +0 -61
  56. package/src/cli/validations/outputs.ts +0 -91
  57. package/src/cli/validations/postgres.ts +0 -83
  58. package/src/cli/validations/singlestore.ts +0 -61
  59. package/src/cli/validations/sqlite.ts +0 -104
  60. package/src/cli/validations/studio.ts +0 -24
  61. package/src/cli/views.ts +0 -658
  62. package/src/extensions/getTablesFilterByExtensions.ts +0 -16
  63. package/src/extensions/vector.ts +0 -10
  64. package/src/global.ts +0 -61
  65. package/src/introspect-mysql.ts +0 -1030
  66. package/src/introspect-pg.ts +0 -1435
  67. package/src/introspect-singlestore.ts +0 -913
  68. package/src/introspect-sqlite.ts +0 -533
  69. package/src/jsonDiffer.js +0 -882
  70. package/src/jsonStatements.ts +0 -3590
  71. package/src/loader.mjs +0 -57
  72. package/src/migrationPreparator.ts +0 -217
  73. package/src/schemaValidator.ts +0 -23
  74. package/src/serializer/index.ts +0 -142
  75. package/src/serializer/mysqlImports.ts +0 -38
  76. package/src/serializer/mysqlSchema.ts +0 -423
  77. package/src/serializer/mysqlSerializer.ts +0 -999
  78. package/src/serializer/pgImports.ts +0 -106
  79. package/src/serializer/pgSchema.ts +0 -937
  80. package/src/serializer/pgSerializer.ts +0 -2223
  81. package/src/serializer/singlestoreImports.ts +0 -38
  82. package/src/serializer/singlestoreSchema.ts +0 -257
  83. package/src/serializer/singlestoreSerializer.ts +0 -767
  84. package/src/serializer/sqliteImports.ts +0 -41
  85. package/src/serializer/sqliteSchema.ts +0 -352
  86. package/src/serializer/sqliteSerializer.ts +0 -931
  87. package/src/serializer/studio.ts +0 -694
  88. package/src/serializer/utils.ts +0 -45
  89. package/src/simulator.ts +0 -157
  90. package/src/snapshotsDiffer.ts +0 -4398
  91. package/src/sqlgenerator.ts +0 -4212
  92. package/src/statementCombiner.ts +0 -597
  93. package/src/utils/certs.ts +0 -44
  94. package/src/utils/words.ts +0 -1333
  95. package/src/utils.ts +0 -370
  96. package/tests/bin.test.ts +0 -58
  97. package/tests/cli/d1http.config.ts +0 -12
  98. package/tests/cli/drizzle.config.ts +0 -9
  99. package/tests/cli/durable-sqlite.config.ts +0 -7
  100. package/tests/cli/expo.config.ts +0 -7
  101. package/tests/cli/postgres.config.ts +0 -13
  102. package/tests/cli/postgres2.config.ts +0 -17
  103. package/tests/cli/schema.ts +0 -1
  104. package/tests/cli/turso.config.ts +0 -10
  105. package/tests/cli-export.test.ts +0 -79
  106. package/tests/cli-generate.test.ts +0 -259
  107. package/tests/cli-migrate.test.ts +0 -103
  108. package/tests/cli-push.test.ts +0 -126
  109. package/tests/common.ts +0 -15
  110. package/tests/indexes/common.ts +0 -21
  111. package/tests/indexes/pg.test.ts +0 -245
  112. package/tests/introspect/libsql.test.ts +0 -35
  113. package/tests/introspect/mysql.test.ts +0 -319
  114. package/tests/introspect/pg.test.ts +0 -894
  115. package/tests/introspect/singlestore.test.ts +0 -275
  116. package/tests/introspect/sqlite.test.ts +0 -122
  117. package/tests/libsql-checks.test.ts +0 -308
  118. package/tests/libsql-statements.test.ts +0 -989
  119. package/tests/libsql-views.test.ts +0 -218
  120. package/tests/migrate/libsq-schema.ts +0 -6
  121. package/tests/migrate/libsql-migrate.test.ts +0 -58
  122. package/tests/migrate/migrations/0000_little_blizzard.sql +0 -4
  123. package/tests/migrate/migrations/0001_nebulous_storm.sql +0 -10
  124. package/tests/migrate/migrations/meta/0000_snapshot.json +0 -40
  125. package/tests/migrate/migrations/meta/0001_snapshot.json +0 -40
  126. package/tests/migrate/migrations/meta/_journal.json +0 -20
  127. package/tests/mysql-checks.test.ts +0 -291
  128. package/tests/mysql-generated.test.ts +0 -1290
  129. package/tests/mysql-schemas.test.ts +0 -156
  130. package/tests/mysql-views.test.ts +0 -553
  131. package/tests/mysql.test.ts +0 -863
  132. package/tests/pg-array.test.ts +0 -368
  133. package/tests/pg-checks.test.ts +0 -329
  134. package/tests/pg-columns.test.ts +0 -484
  135. package/tests/pg-domains.test.ts +0 -306
  136. package/tests/pg-enums.test.ts +0 -751
  137. package/tests/pg-generated.test.ts +0 -529
  138. package/tests/pg-identity.test.ts +0 -447
  139. package/tests/pg-schemas.test.ts +0 -105
  140. package/tests/pg-sequences.test.ts +0 -298
  141. package/tests/pg-tables.test.ts +0 -1021
  142. package/tests/pg-views.test.ts +0 -1929
  143. package/tests/push/common.ts +0 -58
  144. package/tests/push/libsql.test.ts +0 -1400
  145. package/tests/push/mysql-push.test.ts +0 -345
  146. package/tests/push/mysql.test.ts +0 -788
  147. package/tests/push/pg.test.ts +0 -4341
  148. package/tests/push/singlestore-push.test.ts +0 -894
  149. package/tests/push/singlestore.test.ts +0 -444
  150. package/tests/push/sqlite.test.ts +0 -1613
  151. package/tests/rls/pg-policy.test.ts +0 -1656
  152. package/tests/rls/pg-role.test.ts +0 -234
  153. package/tests/schemaDiffer.ts +0 -2852
  154. package/tests/singlestore-generated.test.ts +0 -1290
  155. package/tests/singlestore-schemas.test.ts +0 -155
  156. package/tests/singlestore.test.ts +0 -978
  157. package/tests/sqlite-checks.test.ts +0 -308
  158. package/tests/sqlite-columns.test.ts +0 -1049
  159. package/tests/sqlite-generated.test.ts +0 -1726
  160. package/tests/sqlite-tables.test.ts +0 -637
  161. package/tests/sqlite-views.test.ts +0 -218
  162. package/tests/statements-combiner/libsql-statements-combiner.test.ts +0 -1812
  163. package/tests/statements-combiner/singlestore-statements-combiner.test.ts +0 -882
  164. package/tests/statements-combiner/sqlite-statements-combiner.test.ts +0 -1211
  165. package/tests/test/sqlite.test.ts +0 -39
  166. package/tests/testsinglestore.ts +0 -29
  167. package/tests/validations.test.ts +0 -869
  168. package/tests/wrap-param.test.ts +0 -16
  169. package/tsconfig.build.json +0 -4
  170. package/tsconfig.cli-types.json +0 -9
  171. package/tsconfig.json +0 -28
  172. package/vitest.config.ts +0 -34
@@ -1,882 +0,0 @@
1
- import { JsonStatement } from 'src/jsonStatements';
2
- import { SingleStoreSchemaSquashed } from 'src/serializer/singlestoreSchema';
3
- import { singleStoreCombineStatements } from 'src/statementCombiner';
4
- import { expect, test } from 'vitest';
5
-
6
- test(`change column data type`, async (t) => {
7
- const statements: JsonStatement[] = [
8
- {
9
- type: 'alter_table_rename_column',
10
- tableName: 'user',
11
- oldColumnName: 'lastName',
12
- newColumnName: 'lastName123',
13
- schema: '',
14
- },
15
- {
16
- type: 'alter_table_alter_column_set_type',
17
- tableName: 'user',
18
- columnName: 'lastName123',
19
- newDataType: 'int',
20
- oldDataType: 'text',
21
- schema: '',
22
- columnDefault: undefined,
23
- columnOnUpdate: undefined,
24
- columnNotNull: false,
25
- columnAutoIncrement: false,
26
- columnPk: false,
27
- columnIsUnique: false,
28
- } as unknown as JsonStatement,
29
- ];
30
- const json1: SingleStoreSchemaSquashed = {
31
- version: '1',
32
- dialect: 'singlestore',
33
- tables: {
34
- user: {
35
- name: 'user',
36
- columns: {
37
- firstName: {
38
- name: 'firstName',
39
- type: 'int',
40
- primaryKey: true,
41
- notNull: true,
42
- autoincrement: false,
43
- },
44
- lastName: {
45
- name: 'lastName',
46
- type: 'text',
47
- primaryKey: false,
48
- notNull: false,
49
- autoincrement: false,
50
- },
51
- test: {
52
- name: 'test',
53
- type: 'text',
54
- primaryKey: false,
55
- notNull: false,
56
- autoincrement: false,
57
- },
58
- },
59
- indexes: {},
60
- compositePrimaryKeys: {},
61
- uniqueConstraints: {},
62
- },
63
- },
64
- };
65
- const json2: SingleStoreSchemaSquashed = {
66
- version: '1',
67
- dialect: 'singlestore',
68
- tables: {
69
- user: {
70
- name: 'user',
71
- columns: {
72
- firstName: {
73
- name: 'firstName',
74
- type: 'int',
75
- primaryKey: true,
76
- notNull: true,
77
- autoincrement: false,
78
- },
79
- lastName: {
80
- name: 'lastName123',
81
- type: 'int',
82
- primaryKey: false,
83
- notNull: false,
84
- autoincrement: false,
85
- },
86
- test: {
87
- name: 'test',
88
- type: 'int',
89
- primaryKey: false,
90
- notNull: false,
91
- autoincrement: false,
92
- },
93
- },
94
- indexes: {},
95
- compositePrimaryKeys: {},
96
- uniqueConstraints: {},
97
- },
98
- },
99
- };
100
-
101
- const newJsonStatements = [
102
- {
103
- type: 'alter_table_rename_column',
104
- tableName: 'user',
105
- oldColumnName: 'lastName',
106
- newColumnName: 'lastName123',
107
- schema: '',
108
- },
109
- {
110
- type: 'singlestore_recreate_table',
111
- tableName: 'user',
112
- columns: [
113
- {
114
- name: 'firstName',
115
- type: 'int',
116
- primaryKey: true,
117
- notNull: true,
118
- autoincrement: false,
119
- },
120
- {
121
- name: 'lastName123',
122
- type: 'int',
123
- primaryKey: false,
124
- notNull: false,
125
- autoincrement: false,
126
- },
127
- {
128
- name: 'test',
129
- type: 'int',
130
- primaryKey: false,
131
- notNull: false,
132
- autoincrement: false,
133
- },
134
- ],
135
- compositePKs: [],
136
- uniqueConstraints: [],
137
- },
138
- ];
139
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
140
- newJsonStatements,
141
- );
142
- });
143
-
144
- test(`set autoincrement`, async (t) => {
145
- const statements: JsonStatement[] = [
146
- {
147
- type: 'alter_table_alter_column_set_autoincrement',
148
- tableName: 'users',
149
- columnName: 'id',
150
- schema: '',
151
- newDataType: 'int',
152
- columnDefault: undefined,
153
- columnOnUpdate: undefined,
154
- columnNotNull: true,
155
- columnAutoIncrement: true,
156
- columnPk: false,
157
- } as unknown as JsonStatement,
158
- ];
159
-
160
- const json2: SingleStoreSchemaSquashed = {
161
- version: '1',
162
- dialect: 'singlestore',
163
- tables: {
164
- users: {
165
- name: 'users',
166
- columns: {
167
- new_id: {
168
- name: 'id',
169
- type: 'int',
170
- primaryKey: false,
171
- notNull: true,
172
- autoincrement: true,
173
- },
174
- name: {
175
- name: 'name',
176
- type: 'text',
177
- primaryKey: false,
178
- notNull: false,
179
- autoincrement: false,
180
- },
181
- email: {
182
- name: 'email',
183
- type: 'text',
184
- primaryKey: false,
185
- notNull: true,
186
- autoincrement: false,
187
- },
188
- },
189
- indexes: {},
190
- compositePrimaryKeys: {},
191
- uniqueConstraints: {},
192
- },
193
- },
194
- };
195
- const newJsonStatements = [
196
- {
197
- type: 'singlestore_recreate_table',
198
- tableName: 'users',
199
- columns: [
200
- {
201
- name: 'id',
202
- type: 'int',
203
- primaryKey: false,
204
- notNull: true,
205
- autoincrement: true,
206
- },
207
- {
208
- name: 'name',
209
- type: 'text',
210
- primaryKey: false,
211
- notNull: false,
212
- autoincrement: false,
213
- },
214
- {
215
- name: 'email',
216
- type: 'text',
217
- primaryKey: false,
218
- notNull: true,
219
- autoincrement: false,
220
- },
221
- ],
222
- compositePKs: [],
223
- uniqueConstraints: [],
224
- },
225
- ];
226
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
227
- newJsonStatements,
228
- );
229
- });
230
-
231
- test(`drop autoincrement`, async (t) => {
232
- const statements: JsonStatement[] = [
233
- {
234
- type: 'alter_table_alter_column_drop_autoincrement',
235
- tableName: 'users',
236
- columnName: 'id',
237
- schema: '',
238
- newDataType: 'int',
239
- columnDefault: undefined,
240
- columnOnUpdate: undefined,
241
- columnNotNull: true,
242
- columnAutoIncrement: true,
243
- columnPk: false,
244
- } as unknown as JsonStatement,
245
- ];
246
-
247
- const json2: SingleStoreSchemaSquashed = {
248
- version: '1',
249
- dialect: 'singlestore',
250
- tables: {
251
- users: {
252
- name: 'users',
253
- columns: {
254
- new_id: {
255
- name: 'id',
256
- type: 'int',
257
- primaryKey: false,
258
- notNull: true,
259
- autoincrement: false,
260
- },
261
- name: {
262
- name: 'name',
263
- type: 'text',
264
- primaryKey: false,
265
- notNull: false,
266
- autoincrement: false,
267
- },
268
- email: {
269
- name: 'email',
270
- type: 'text',
271
- primaryKey: false,
272
- notNull: true,
273
- autoincrement: false,
274
- },
275
- },
276
- indexes: {},
277
- compositePrimaryKeys: {},
278
- uniqueConstraints: {},
279
- },
280
- },
281
- };
282
- const newJsonStatements = [
283
- {
284
- type: 'singlestore_recreate_table',
285
- tableName: 'users',
286
- columns: [
287
- {
288
- name: 'id',
289
- type: 'int',
290
- primaryKey: false,
291
- notNull: true,
292
- autoincrement: false,
293
- },
294
- {
295
- name: 'name',
296
- type: 'text',
297
- primaryKey: false,
298
- notNull: false,
299
- autoincrement: false,
300
- },
301
- {
302
- name: 'email',
303
- type: 'text',
304
- primaryKey: false,
305
- notNull: true,
306
- autoincrement: false,
307
- },
308
- ],
309
- compositePKs: [],
310
- uniqueConstraints: [],
311
- },
312
- ];
313
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
314
- newJsonStatements,
315
- );
316
- });
317
-
318
- test(`drop autoincrement`, async (t) => {
319
- const statements: JsonStatement[] = [
320
- {
321
- type: 'alter_table_alter_column_drop_autoincrement',
322
- tableName: 'users',
323
- columnName: 'id',
324
- schema: '',
325
- newDataType: 'int',
326
- columnDefault: undefined,
327
- columnOnUpdate: undefined,
328
- columnNotNull: true,
329
- columnAutoIncrement: true,
330
- columnPk: false,
331
- } as unknown as JsonStatement,
332
- ];
333
-
334
- const json2: SingleStoreSchemaSquashed = {
335
- version: '1',
336
- dialect: 'singlestore',
337
- tables: {
338
- users: {
339
- name: 'users',
340
- columns: {
341
- new_id: {
342
- name: 'id',
343
- type: 'int',
344
- primaryKey: false,
345
- notNull: true,
346
- autoincrement: false,
347
- },
348
- name: {
349
- name: 'name',
350
- type: 'text',
351
- primaryKey: false,
352
- notNull: false,
353
- autoincrement: false,
354
- },
355
- email: {
356
- name: 'email',
357
- type: 'text',
358
- primaryKey: false,
359
- notNull: true,
360
- autoincrement: false,
361
- },
362
- },
363
- indexes: {},
364
- compositePrimaryKeys: {},
365
- uniqueConstraints: {},
366
- },
367
- },
368
- };
369
- const newJsonStatements = [
370
- {
371
- type: 'singlestore_recreate_table',
372
- tableName: 'users',
373
- columns: [
374
- {
375
- name: 'id',
376
- type: 'int',
377
- primaryKey: false,
378
- notNull: true,
379
- autoincrement: false,
380
- },
381
- {
382
- name: 'name',
383
- type: 'text',
384
- primaryKey: false,
385
- notNull: false,
386
- autoincrement: false,
387
- },
388
- {
389
- name: 'email',
390
- type: 'text',
391
- primaryKey: false,
392
- notNull: true,
393
- autoincrement: false,
394
- },
395
- ],
396
- compositePKs: [],
397
- uniqueConstraints: [],
398
- },
399
- ];
400
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
401
- newJsonStatements,
402
- );
403
- });
404
-
405
- test(`set not null`, async (t) => {
406
- const statements: JsonStatement[] = [
407
- {
408
- type: 'alter_table_alter_column_set_notnull',
409
- tableName: 'users',
410
- columnName: 'name',
411
- schema: '',
412
- newDataType: 'text',
413
- columnDefault: undefined,
414
- columnOnUpdate: undefined,
415
- columnNotNull: true,
416
- columnAutoIncrement: false,
417
- columnPk: false,
418
- } as unknown as JsonStatement,
419
- ];
420
-
421
- const json2: SingleStoreSchemaSquashed = {
422
- version: '1',
423
- dialect: 'singlestore',
424
- tables: {
425
- users: {
426
- name: 'users',
427
- columns: {
428
- new_id: {
429
- name: 'id',
430
- type: 'int',
431
- primaryKey: false,
432
- notNull: true,
433
- autoincrement: false,
434
- },
435
- name: {
436
- name: 'name',
437
- type: 'text',
438
- primaryKey: false,
439
- notNull: true,
440
- autoincrement: false,
441
- },
442
- email: {
443
- name: 'email',
444
- type: 'text',
445
- primaryKey: false,
446
- notNull: true,
447
- autoincrement: false,
448
- },
449
- },
450
- indexes: {},
451
- compositePrimaryKeys: {},
452
- uniqueConstraints: {},
453
- },
454
- },
455
- };
456
- const newJsonStatements = [
457
- {
458
- type: 'singlestore_recreate_table',
459
- tableName: 'users',
460
- columns: [
461
- {
462
- name: 'id',
463
- type: 'int',
464
- primaryKey: false,
465
- notNull: true,
466
- autoincrement: false,
467
- },
468
- {
469
- name: 'name',
470
- type: 'text',
471
- primaryKey: false,
472
- notNull: true,
473
- autoincrement: false,
474
- },
475
- {
476
- name: 'email',
477
- type: 'text',
478
- primaryKey: false,
479
- notNull: true,
480
- autoincrement: false,
481
- },
482
- ],
483
- compositePKs: [],
484
- uniqueConstraints: [],
485
- },
486
- ];
487
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
488
- newJsonStatements,
489
- );
490
- });
491
-
492
- test(`drop not null`, async (t) => {
493
- const statements: JsonStatement[] = [
494
- {
495
- type: 'alter_table_alter_column_drop_notnull',
496
- tableName: 'users',
497
- columnName: 'name',
498
- schema: '',
499
- newDataType: 'text',
500
- columnDefault: undefined,
501
- columnOnUpdate: undefined,
502
- columnNotNull: false,
503
- columnAutoIncrement: false,
504
- columnPk: false,
505
- } as unknown as JsonStatement,
506
- ];
507
-
508
- const json2: SingleStoreSchemaSquashed = {
509
- version: '1',
510
- dialect: 'singlestore',
511
- tables: {
512
- users: {
513
- name: 'users',
514
- columns: {
515
- new_id: {
516
- name: 'id',
517
- type: 'int',
518
- primaryKey: false,
519
- notNull: true,
520
- autoincrement: false,
521
- },
522
- name: {
523
- name: 'name',
524
- type: 'text',
525
- primaryKey: false,
526
- notNull: true,
527
- autoincrement: false,
528
- },
529
- email: {
530
- name: 'email',
531
- type: 'text',
532
- primaryKey: false,
533
- notNull: true,
534
- autoincrement: false,
535
- },
536
- },
537
- indexes: {},
538
- compositePrimaryKeys: {},
539
- uniqueConstraints: {},
540
- },
541
- },
542
- };
543
- const newJsonStatements = [
544
- {
545
- type: 'singlestore_recreate_table',
546
- tableName: 'users',
547
- columns: [
548
- {
549
- name: 'id',
550
- type: 'int',
551
- primaryKey: false,
552
- notNull: true,
553
- autoincrement: false,
554
- },
555
- {
556
- name: 'name',
557
- type: 'text',
558
- primaryKey: false,
559
- notNull: true,
560
- autoincrement: false,
561
- },
562
- {
563
- name: 'email',
564
- type: 'text',
565
- primaryKey: false,
566
- notNull: true,
567
- autoincrement: false,
568
- },
569
- ],
570
- compositePKs: [],
571
- uniqueConstraints: [],
572
- },
573
- ];
574
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
575
- newJsonStatements,
576
- );
577
- });
578
-
579
- test(`renamed column and droped column "test"`, async (t) => {
580
- const statements: JsonStatement[] = [
581
- {
582
- type: 'alter_table_rename_column',
583
- tableName: 'user',
584
- oldColumnName: 'lastName',
585
- newColumnName: 'lastName123',
586
- schema: '',
587
- },
588
- {
589
- type: 'alter_table_drop_column',
590
- tableName: 'user',
591
- columnName: 'test',
592
- schema: '',
593
- },
594
- ];
595
- const json1: SingleStoreSchemaSquashed = {
596
- version: '1',
597
- dialect: 'singlestore',
598
- tables: {
599
- user: {
600
- name: 'user',
601
- columns: {
602
- firstName: {
603
- name: 'firstName',
604
- type: 'int',
605
- primaryKey: true,
606
- notNull: true,
607
- autoincrement: false,
608
- },
609
- lastName: {
610
- name: 'lastName',
611
- type: 'text',
612
- primaryKey: false,
613
- notNull: false,
614
- autoincrement: false,
615
- },
616
- test: {
617
- name: 'test',
618
- type: 'text',
619
- primaryKey: false,
620
- notNull: false,
621
- autoincrement: false,
622
- },
623
- },
624
- indexes: {},
625
- compositePrimaryKeys: {},
626
- uniqueConstraints: {},
627
- },
628
- },
629
- };
630
- const json2: SingleStoreSchemaSquashed = {
631
- version: '1',
632
- dialect: 'singlestore',
633
- tables: {
634
- user: {
635
- name: 'user',
636
- columns: {
637
- firstName: {
638
- name: 'firstName',
639
- type: 'int',
640
- primaryKey: true,
641
- notNull: true,
642
- autoincrement: false,
643
- },
644
- lastName: {
645
- name: 'lastName123',
646
- type: 'int',
647
- primaryKey: false,
648
- notNull: false,
649
- autoincrement: false,
650
- },
651
- test: {
652
- name: 'test',
653
- type: 'int',
654
- primaryKey: false,
655
- notNull: false,
656
- autoincrement: false,
657
- },
658
- },
659
- indexes: {},
660
- compositePrimaryKeys: {},
661
- uniqueConstraints: {},
662
- },
663
- },
664
- };
665
-
666
- const newJsonStatements: JsonStatement[] = [
667
- {
668
- type: 'alter_table_rename_column',
669
- tableName: 'user',
670
- oldColumnName: 'lastName',
671
- newColumnName: 'lastName123',
672
- schema: '',
673
- },
674
- {
675
- type: 'alter_table_drop_column',
676
- tableName: 'user',
677
- columnName: 'test',
678
- schema: '',
679
- },
680
- ];
681
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
682
- newJsonStatements,
683
- );
684
- });
685
-
686
- test(`droped column that is part of composite pk`, async (t) => {
687
- const statements: JsonStatement[] = [
688
- { type: 'delete_composite_pk', tableName: 'user', data: 'id,iq' },
689
- {
690
- type: 'alter_table_alter_column_set_pk',
691
- tableName: 'user',
692
- schema: '',
693
- columnName: 'id',
694
- },
695
- {
696
- type: 'alter_table_drop_column',
697
- tableName: 'user',
698
- columnName: 'iq',
699
- schema: '',
700
- },
701
- ];
702
- const json1: SingleStoreSchemaSquashed = {
703
- version: '1',
704
- dialect: 'singlestore',
705
- tables: {
706
- user: {
707
- name: 'user',
708
- columns: {
709
- id: {
710
- name: 'id',
711
- type: 'int',
712
- primaryKey: false,
713
- notNull: false,
714
- autoincrement: false,
715
- },
716
- first_nam: {
717
- name: 'first_nam',
718
- type: 'text',
719
- primaryKey: false,
720
- notNull: false,
721
- autoincrement: false,
722
- },
723
- iq: {
724
- name: 'iq',
725
- type: 'int',
726
- primaryKey: false,
727
- notNull: false,
728
- autoincrement: false,
729
- },
730
- },
731
- indexes: {},
732
- compositePrimaryKeys: {
733
- user_id_iq_pk: 'id,iq',
734
- },
735
- uniqueConstraints: {},
736
- },
737
- },
738
- };
739
- const json2: SingleStoreSchemaSquashed = {
740
- version: '1',
741
- dialect: 'singlestore',
742
- tables: {
743
- user: {
744
- name: 'user',
745
- columns: {
746
- id: {
747
- name: 'id',
748
- type: 'int',
749
- primaryKey: true,
750
- notNull: false,
751
- autoincrement: false,
752
- },
753
- first_nam: {
754
- name: 'first_name',
755
- type: 'text',
756
- primaryKey: false,
757
- notNull: false,
758
- autoincrement: false,
759
- },
760
- },
761
- indexes: {},
762
- compositePrimaryKeys: {},
763
- uniqueConstraints: {},
764
- },
765
- },
766
- };
767
-
768
- const newJsonStatements: JsonStatement[] = [
769
- {
770
- type: 'singlestore_recreate_table',
771
- tableName: 'user',
772
- columns: [
773
- {
774
- name: 'id',
775
- type: 'int',
776
- primaryKey: true,
777
- notNull: false,
778
- autoincrement: false,
779
- },
780
- {
781
- name: 'first_name',
782
- type: 'text',
783
- primaryKey: false,
784
- notNull: false,
785
- autoincrement: false,
786
- },
787
- ],
788
- compositePKs: [],
789
- uniqueConstraints: [],
790
- },
791
- ];
792
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
793
- newJsonStatements,
794
- );
795
- });
796
-
797
- test(`add column with pk`, async (t) => {
798
- const statements: JsonStatement[] = [
799
- {
800
- type: 'alter_table_add_column',
801
- tableName: 'table',
802
- column: {
803
- name: 'test',
804
- type: 'integer',
805
- primaryKey: true,
806
- notNull: false,
807
- autoincrement: false,
808
- },
809
- schema: '',
810
- },
811
- ];
812
- const json2: SingleStoreSchemaSquashed = {
813
- version: '1',
814
- dialect: 'singlestore',
815
- tables: {
816
- table: {
817
- name: 'table',
818
- columns: {
819
- id1: {
820
- name: 'id1',
821
- type: 'text',
822
- primaryKey: false,
823
- notNull: true,
824
- autoincrement: false,
825
- },
826
- new_age: {
827
- name: 'new_age',
828
- type: 'integer',
829
- primaryKey: false,
830
- notNull: false,
831
- autoincrement: false,
832
- },
833
- test: {
834
- name: 'test',
835
- type: 'integer',
836
- primaryKey: false,
837
- notNull: false,
838
- autoincrement: false,
839
- },
840
- },
841
- indexes: {},
842
- compositePrimaryKeys: {},
843
- uniqueConstraints: {},
844
- },
845
- },
846
- };
847
-
848
- const newJsonStatements = [
849
- {
850
- columns: [
851
- {
852
- name: 'id1',
853
- type: 'text',
854
- primaryKey: false,
855
- notNull: true,
856
- autoincrement: false,
857
- },
858
- {
859
- name: 'new_age',
860
- type: 'integer',
861
- primaryKey: false,
862
- notNull: false,
863
- autoincrement: false,
864
- },
865
- {
866
- name: 'test',
867
- type: 'integer',
868
- primaryKey: false,
869
- notNull: false,
870
- autoincrement: false,
871
- },
872
- ],
873
- compositePKs: [],
874
- tableName: 'table',
875
- type: 'singlestore_recreate_table',
876
- uniqueConstraints: [],
877
- },
878
- ];
879
- expect(singleStoreCombineStatements(statements, json2)).toStrictEqual(
880
- newJsonStatements,
881
- );
882
- });