@anthonyalayo/drizzle-kit 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/.gitignore +25 -0
  2. package/README.md +79 -0
  3. package/build.dev.ts +51 -0
  4. package/build.ts +112 -0
  5. package/imports-checker/analyze.ts +78 -0
  6. package/imports-checker/checker.ts +296 -0
  7. package/imports-checker/grammar/grammar.ohm +121 -0
  8. package/imports-checker/grammar/grammar.ohm-bundle.d.ts +164 -0
  9. package/imports-checker/grammar/grammar.ohm-bundle.js +753 -0
  10. package/imports-checker/index.ts +48 -0
  11. package/package.json +142 -0
  12. package/patches/difflib@0.2.4.patch +31 -0
  13. package/src/@types/utils.ts +58 -0
  14. package/src/api.ts +504 -0
  15. package/src/cli/commands/_es5.ts +2 -0
  16. package/src/cli/commands/check.ts +52 -0
  17. package/src/cli/commands/drop.ts +60 -0
  18. package/src/cli/commands/introspect.ts +772 -0
  19. package/src/cli/commands/libSqlPushUtils.ts +355 -0
  20. package/src/cli/commands/migrate.ts +1526 -0
  21. package/src/cli/commands/mysqlIntrospect.ts +53 -0
  22. package/src/cli/commands/mysqlPushUtils.ts +352 -0
  23. package/src/cli/commands/mysqlUp.ts +102 -0
  24. package/src/cli/commands/pgIntrospect.ts +55 -0
  25. package/src/cli/commands/pgPushUtils.ts +269 -0
  26. package/src/cli/commands/pgUp.ts +217 -0
  27. package/src/cli/commands/push.ts +637 -0
  28. package/src/cli/commands/singlestoreIntrospect.ts +53 -0
  29. package/src/cli/commands/singlestorePushUtils.ts +456 -0
  30. package/src/cli/commands/singlestoreUp.ts +1 -0
  31. package/src/cli/commands/sqliteIntrospect.ts +96 -0
  32. package/src/cli/commands/sqlitePushUtils.ts +322 -0
  33. package/src/cli/commands/sqliteUp.ts +52 -0
  34. package/src/cli/commands/utils.ts +858 -0
  35. package/src/cli/connections.ts +914 -0
  36. package/src/cli/index.ts +48 -0
  37. package/src/cli/schema.ts +794 -0
  38. package/src/cli/selector-ui.ts +38 -0
  39. package/src/cli/utils.ts +112 -0
  40. package/src/cli/validations/cli.ts +79 -0
  41. package/src/cli/validations/common.ts +193 -0
  42. package/src/cli/validations/libsql.ts +27 -0
  43. package/src/cli/validations/mysql.ts +61 -0
  44. package/src/cli/validations/outputs.ts +91 -0
  45. package/src/cli/validations/postgres.ts +83 -0
  46. package/src/cli/validations/singlestore.ts +61 -0
  47. package/src/cli/validations/sqlite.ts +104 -0
  48. package/src/cli/validations/studio.ts +24 -0
  49. package/src/cli/views.ts +658 -0
  50. package/src/extensions/getTablesFilterByExtensions.ts +16 -0
  51. package/src/extensions/vector.ts +10 -0
  52. package/src/global.ts +61 -0
  53. package/src/index.ts +326 -0
  54. package/src/introspect-mysql.ts +1030 -0
  55. package/src/introspect-pg.ts +1435 -0
  56. package/src/introspect-singlestore.ts +913 -0
  57. package/src/introspect-sqlite.ts +533 -0
  58. package/src/jsonDiffer.js +882 -0
  59. package/src/jsonStatements.ts +3590 -0
  60. package/src/loader.mjs +57 -0
  61. package/src/migrationPreparator.ts +217 -0
  62. package/src/schemaValidator.ts +23 -0
  63. package/src/serializer/index.ts +142 -0
  64. package/src/serializer/mysqlImports.ts +38 -0
  65. package/src/serializer/mysqlSchema.ts +423 -0
  66. package/src/serializer/mysqlSerializer.ts +999 -0
  67. package/src/serializer/pgImports.ts +106 -0
  68. package/src/serializer/pgSchema.ts +937 -0
  69. package/src/serializer/pgSerializer.ts +2223 -0
  70. package/src/serializer/singlestoreImports.ts +38 -0
  71. package/src/serializer/singlestoreSchema.ts +257 -0
  72. package/src/serializer/singlestoreSerializer.ts +767 -0
  73. package/src/serializer/sqliteImports.ts +41 -0
  74. package/src/serializer/sqliteSchema.ts +352 -0
  75. package/src/serializer/sqliteSerializer.ts +931 -0
  76. package/src/serializer/studio.ts +694 -0
  77. package/src/serializer/utils.ts +45 -0
  78. package/src/simulator.ts +157 -0
  79. package/src/snapshotsDiffer.ts +4398 -0
  80. package/src/sqlgenerator.ts +4212 -0
  81. package/src/statementCombiner.ts +597 -0
  82. package/src/utils/certs.ts +44 -0
  83. package/src/utils/words.ts +1333 -0
  84. package/src/utils.ts +370 -0
  85. package/tests/bin.test.ts +58 -0
  86. package/tests/cli/d1http.config.ts +12 -0
  87. package/tests/cli/drizzle.config.ts +9 -0
  88. package/tests/cli/durable-sqlite.config.ts +7 -0
  89. package/tests/cli/expo.config.ts +7 -0
  90. package/tests/cli/postgres.config.ts +13 -0
  91. package/tests/cli/postgres2.config.ts +17 -0
  92. package/tests/cli/schema.ts +1 -0
  93. package/tests/cli/turso.config.ts +10 -0
  94. package/tests/cli-export.test.ts +79 -0
  95. package/tests/cli-generate.test.ts +259 -0
  96. package/tests/cli-migrate.test.ts +103 -0
  97. package/tests/cli-push.test.ts +126 -0
  98. package/tests/common.ts +15 -0
  99. package/tests/indexes/common.ts +21 -0
  100. package/tests/indexes/pg.test.ts +245 -0
  101. package/tests/introspect/libsql.test.ts +35 -0
  102. package/tests/introspect/mysql.test.ts +319 -0
  103. package/tests/introspect/pg.test.ts +894 -0
  104. package/tests/introspect/singlestore.test.ts +275 -0
  105. package/tests/introspect/sqlite.test.ts +122 -0
  106. package/tests/libsql-checks.test.ts +308 -0
  107. package/tests/libsql-statements.test.ts +989 -0
  108. package/tests/libsql-views.test.ts +218 -0
  109. package/tests/migrate/libsq-schema.ts +6 -0
  110. package/tests/migrate/libsql-migrate.test.ts +58 -0
  111. package/tests/migrate/migrations/0000_little_blizzard.sql +4 -0
  112. package/tests/migrate/migrations/0001_nebulous_storm.sql +10 -0
  113. package/tests/migrate/migrations/meta/0000_snapshot.json +40 -0
  114. package/tests/migrate/migrations/meta/0001_snapshot.json +40 -0
  115. package/tests/migrate/migrations/meta/_journal.json +20 -0
  116. package/tests/mysql-checks.test.ts +291 -0
  117. package/tests/mysql-generated.test.ts +1290 -0
  118. package/tests/mysql-schemas.test.ts +156 -0
  119. package/tests/mysql-views.test.ts +553 -0
  120. package/tests/mysql.test.ts +863 -0
  121. package/tests/pg-array.test.ts +368 -0
  122. package/tests/pg-checks.test.ts +329 -0
  123. package/tests/pg-columns.test.ts +484 -0
  124. package/tests/pg-domains.test.ts +306 -0
  125. package/tests/pg-enums.test.ts +751 -0
  126. package/tests/pg-generated.test.ts +529 -0
  127. package/tests/pg-identity.test.ts +447 -0
  128. package/tests/pg-schemas.test.ts +105 -0
  129. package/tests/pg-sequences.test.ts +298 -0
  130. package/tests/pg-tables.test.ts +1021 -0
  131. package/tests/pg-views.test.ts +1929 -0
  132. package/tests/push/common.ts +58 -0
  133. package/tests/push/libsql.test.ts +1400 -0
  134. package/tests/push/mysql-push.test.ts +345 -0
  135. package/tests/push/mysql.test.ts +788 -0
  136. package/tests/push/pg.test.ts +4341 -0
  137. package/tests/push/singlestore-push.test.ts +894 -0
  138. package/tests/push/singlestore.test.ts +444 -0
  139. package/tests/push/sqlite.test.ts +1613 -0
  140. package/tests/rls/pg-policy.test.ts +1656 -0
  141. package/tests/rls/pg-role.test.ts +234 -0
  142. package/tests/schemaDiffer.ts +2852 -0
  143. package/tests/singlestore-generated.test.ts +1290 -0
  144. package/tests/singlestore-schemas.test.ts +155 -0
  145. package/tests/singlestore.test.ts +978 -0
  146. package/tests/sqlite-checks.test.ts +308 -0
  147. package/tests/sqlite-columns.test.ts +1049 -0
  148. package/tests/sqlite-generated.test.ts +1726 -0
  149. package/tests/sqlite-tables.test.ts +637 -0
  150. package/tests/sqlite-views.test.ts +218 -0
  151. package/tests/statements-combiner/libsql-statements-combiner.test.ts +1812 -0
  152. package/tests/statements-combiner/singlestore-statements-combiner.test.ts +882 -0
  153. package/tests/statements-combiner/sqlite-statements-combiner.test.ts +1211 -0
  154. package/tests/test/sqlite.test.ts +39 -0
  155. package/tests/testsinglestore.ts +29 -0
  156. package/tests/validations.test.ts +869 -0
  157. package/tests/wrap-param.test.ts +16 -0
  158. package/tsconfig.build.json +4 -0
  159. package/tsconfig.cli-types.json +9 -0
  160. package/tsconfig.json +28 -0
  161. package/vitest.config.ts +34 -0
@@ -0,0 +1,155 @@
1
+ import { singlestoreSchema, singlestoreTable } from 'drizzle-orm/singlestore-core';
2
+ import { expect, test } from 'vitest';
3
+ import { diffTestSchemasSingleStore } from './schemaDiffer';
4
+
5
+ // We don't manage databases(schemas) in MySQL with Drizzle Kit
6
+ test('add schema #1', async () => {
7
+ const to = {
8
+ devSchema: singlestoreSchema('dev'),
9
+ };
10
+
11
+ const { statements } = await diffTestSchemasSingleStore({}, to, []);
12
+
13
+ expect(statements.length).toBe(0);
14
+ });
15
+
16
+ test('add schema #2', async () => {
17
+ const from = {
18
+ devSchema: singlestoreSchema('dev'),
19
+ };
20
+ const to = {
21
+ devSchema: singlestoreSchema('dev'),
22
+ devSchema2: singlestoreSchema('dev2'),
23
+ };
24
+
25
+ const { statements } = await diffTestSchemasSingleStore(from, to, []);
26
+
27
+ expect(statements.length).toBe(0);
28
+ });
29
+
30
+ test('delete schema #1', async () => {
31
+ const from = {
32
+ devSchema: singlestoreSchema('dev'),
33
+ };
34
+
35
+ const { statements } = await diffTestSchemasSingleStore(from, {}, []);
36
+
37
+ expect(statements.length).toBe(0);
38
+ });
39
+
40
+ test('delete schema #2', async () => {
41
+ const from = {
42
+ devSchema: singlestoreSchema('dev'),
43
+ devSchema2: singlestoreSchema('dev2'),
44
+ };
45
+ const to = {
46
+ devSchema: singlestoreSchema('dev'),
47
+ };
48
+
49
+ const { statements } = await diffTestSchemasSingleStore(from, to, []);
50
+
51
+ expect(statements.length).toBe(0);
52
+ });
53
+
54
+ test('rename schema #1', async () => {
55
+ const from = {
56
+ devSchema: singlestoreSchema('dev'),
57
+ };
58
+ const to = {
59
+ devSchema2: singlestoreSchema('dev2'),
60
+ };
61
+
62
+ const { statements } = await diffTestSchemasSingleStore(from, to, ['dev->dev2']);
63
+
64
+ expect(statements.length).toBe(0);
65
+ });
66
+
67
+ test('rename schema #2', async () => {
68
+ const from = {
69
+ devSchema: singlestoreSchema('dev'),
70
+ devSchema1: singlestoreSchema('dev1'),
71
+ };
72
+ const to = {
73
+ devSchema: singlestoreSchema('dev'),
74
+ devSchema2: singlestoreSchema('dev2'),
75
+ };
76
+
77
+ const { statements } = await diffTestSchemasSingleStore(from, to, ['dev1->dev2']);
78
+
79
+ expect(statements.length).toBe(0);
80
+ });
81
+
82
+ test('add table to schema #1', async () => {
83
+ const dev = singlestoreSchema('dev');
84
+ const from = {};
85
+ const to = {
86
+ dev,
87
+ users: dev.table('users', {}),
88
+ };
89
+
90
+ const { statements } = await diffTestSchemasSingleStore(from, to, ['dev1->dev2']);
91
+
92
+ expect(statements.length).toBe(0);
93
+ });
94
+
95
+ test('add table to schema #2', async () => {
96
+ const dev = singlestoreSchema('dev');
97
+ const from = { dev };
98
+ const to = {
99
+ dev,
100
+ users: dev.table('users', {}),
101
+ };
102
+
103
+ const { statements } = await diffTestSchemasSingleStore(from, to, ['dev1->dev2']);
104
+
105
+ expect(statements.length).toBe(0);
106
+ });
107
+
108
+ test('add table to schema #3', async () => {
109
+ const dev = singlestoreSchema('dev');
110
+ const from = { dev };
111
+ const to = {
112
+ dev,
113
+ usersInDev: dev.table('users', {}),
114
+ users: singlestoreTable('users', {}),
115
+ };
116
+
117
+ const { statements } = await diffTestSchemasSingleStore(from, to, ['dev1->dev2']);
118
+
119
+ expect(statements.length).toBe(1);
120
+ expect(statements[0]).toStrictEqual({
121
+ type: 'create_table',
122
+ tableName: 'users',
123
+ schema: undefined,
124
+ columns: [],
125
+ uniqueConstraints: [],
126
+ internals: {
127
+ tables: {},
128
+ indexes: {},
129
+ },
130
+ compositePkName: '',
131
+ compositePKs: [],
132
+ });
133
+ });
134
+
135
+ test('remove table from schema #1', async () => {
136
+ const dev = singlestoreSchema('dev');
137
+ const from = { dev, users: dev.table('users', {}) };
138
+ const to = {
139
+ dev,
140
+ };
141
+
142
+ const { statements } = await diffTestSchemasSingleStore(from, to, ['dev1->dev2']);
143
+
144
+ expect(statements.length).toBe(0);
145
+ });
146
+
147
+ test('remove table from schema #2', async () => {
148
+ const dev = singlestoreSchema('dev');
149
+ const from = { dev, users: dev.table('users', {}) };
150
+ const to = {};
151
+
152
+ const { statements } = await diffTestSchemasSingleStore(from, to, ['dev1->dev2']);
153
+
154
+ expect(statements.length).toBe(0);
155
+ });