@strapi/database 4.13.0-alpha.0 → 4.13.0-alpha.2

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 (112) hide show
  1. package/package.json +3 -3
  2. package/dist/connection.d.ts +0 -2
  3. package/dist/connection.js +0 -57
  4. package/dist/connection.js.map +0 -1
  5. package/dist/dialects/dialect.d.ts +0 -21
  6. package/dist/dialects/dialect.js +0 -49
  7. package/dist/dialects/dialect.js.map +0 -1
  8. package/dist/dialects/index.d.ts +0 -4
  9. package/dist/dialects/index.js +0 -49
  10. package/dist/dialects/index.js.map +0 -1
  11. package/dist/dialects/mysql/constants.d.ts +0 -2
  12. package/dist/dialects/mysql/constants.js +0 -6
  13. package/dist/dialects/mysql/constants.js.map +0 -1
  14. package/dist/dialects/mysql/database-inspector.d.ts +0 -11
  15. package/dist/dialects/mysql/database-inspector.js +0 -34
  16. package/dist/dialects/mysql/database-inspector.js.map +0 -1
  17. package/dist/dialects/mysql/index.d.ts +0 -19
  18. package/dist/dialects/mysql/index.js +0 -80
  19. package/dist/dialects/mysql/index.js.map +0 -1
  20. package/dist/dialects/mysql/schema-inspector.d.ts +0 -11
  21. package/dist/dialects/mysql/schema-inspector.js +0 -206
  22. package/dist/dialects/mysql/schema-inspector.js.map +0 -1
  23. package/dist/dialects/postgresql/index.d.ts +0 -13
  24. package/dist/dialects/postgresql/index.js +0 -72
  25. package/dist/dialects/postgresql/index.js.map +0 -1
  26. package/dist/dialects/postgresql/schema-inspector.d.ts +0 -12
  27. package/dist/dialects/postgresql/schema-inspector.js +0 -236
  28. package/dist/dialects/postgresql/schema-inspector.js.map +0 -1
  29. package/dist/dialects/sqlite/index.d.ts +0 -18
  30. package/dist/dialects/sqlite/index.js +0 -95
  31. package/dist/dialects/sqlite/index.js.map +0 -1
  32. package/dist/dialects/sqlite/schema-inspector.d.ts +0 -11
  33. package/dist/dialects/sqlite/schema-inspector.js +0 -133
  34. package/dist/dialects/sqlite/schema-inspector.js.map +0 -1
  35. package/dist/dialects/types.d.ts +0 -33
  36. package/dist/dialects/types.js +0 -3
  37. package/dist/dialects/types.js.map +0 -1
  38. package/dist/errors/database.d.ts +0 -4
  39. package/dist/errors/database.js +0 -12
  40. package/dist/errors/database.js.map +0 -1
  41. package/dist/errors/index.d.ts +0 -7
  42. package/dist/errors/index.js +0 -19
  43. package/dist/errors/index.js.map +0 -1
  44. package/dist/errors/invalid-date.d.ts +0 -4
  45. package/dist/errors/invalid-date.js +0 -14
  46. package/dist/errors/invalid-date.js.map +0 -1
  47. package/dist/errors/invalid-datetime.d.ts +0 -4
  48. package/dist/errors/invalid-datetime.js +0 -14
  49. package/dist/errors/invalid-datetime.js.map +0 -1
  50. package/dist/errors/invalid-relation.d.ts +0 -4
  51. package/dist/errors/invalid-relation.js +0 -14
  52. package/dist/errors/invalid-relation.js.map +0 -1
  53. package/dist/errors/invalid-time.d.ts +0 -4
  54. package/dist/errors/invalid-time.js +0 -14
  55. package/dist/errors/invalid-time.js.map +0 -1
  56. package/dist/errors/not-null.d.ts +0 -6
  57. package/dist/errors/not-null.js +0 -16
  58. package/dist/errors/not-null.js.map +0 -1
  59. package/dist/index.d.ts +0 -44
  60. package/dist/index.js +0 -135
  61. package/dist/index.js.map +0 -1
  62. package/dist/lifecycles/index.d.ts +0 -16
  63. package/dist/lifecycles/index.js +0 -86
  64. package/dist/lifecycles/index.js.map +0 -1
  65. package/dist/lifecycles/subscribers/index.d.ts +0 -4
  66. package/dist/lifecycles/subscribers/index.js +0 -12
  67. package/dist/lifecycles/subscribers/index.js.map +0 -1
  68. package/dist/lifecycles/subscribers/models-lifecycles.d.ts +0 -5
  69. package/dist/lifecycles/subscribers/models-lifecycles.js +0 -14
  70. package/dist/lifecycles/subscribers/models-lifecycles.js.map +0 -1
  71. package/dist/lifecycles/subscribers/timestamps.d.ts +0 -2
  72. package/dist/lifecycles/subscribers/timestamps.js +0 -50
  73. package/dist/lifecycles/subscribers/timestamps.js.map +0 -1
  74. package/dist/lifecycles/types.d.ts +0 -25
  75. package/dist/lifecycles/types.js +0 -3
  76. package/dist/lifecycles/types.js.map +0 -1
  77. package/dist/metadata/index.d.ts +0 -6
  78. package/dist/metadata/index.js +0 -236
  79. package/dist/metadata/index.js.map +0 -1
  80. package/dist/metadata/relations.d.ts +0 -20
  81. package/dist/metadata/relations.js +0 -529
  82. package/dist/metadata/relations.js.map +0 -1
  83. package/dist/metadata/types.d.ts +0 -44
  84. package/dist/metadata/types.js +0 -22
  85. package/dist/metadata/types.js.map +0 -1
  86. package/dist/migrations/index.d.ts +0 -11
  87. package/dist/migrations/index.js +0 -74
  88. package/dist/migrations/index.js.map +0 -1
  89. package/dist/migrations/storage.d.ts +0 -14
  90. package/dist/migrations/storage.js +0 -38
  91. package/dist/migrations/storage.js.map +0 -1
  92. package/dist/transaction-context.d.ts +0 -16
  93. package/dist/transaction-context.js +0 -56
  94. package/dist/transaction-context.js.map +0 -1
  95. package/dist/types/index.d.ts +0 -6
  96. package/dist/types/index.js +0 -38
  97. package/dist/types/index.js.map +0 -1
  98. package/dist/utils/content-types.d.ts +0 -17
  99. package/dist/utils/content-types.js +0 -39
  100. package/dist/utils/content-types.js.map +0 -1
  101. package/dist/utils/knex.d.ts +0 -8
  102. package/dist/utils/knex.js +0 -22
  103. package/dist/utils/knex.js.map +0 -1
  104. package/dist/validations/index.d.ts +0 -5
  105. package/dist/validations/index.js +0 -12
  106. package/dist/validations/index.js.map +0 -1
  107. package/dist/validations/relations/bidirectional.d.ts +0 -11
  108. package/dist/validations/relations/bidirectional.js +0 -75
  109. package/dist/validations/relations/bidirectional.js.map +0 -1
  110. package/dist/validations/relations/index.d.ts +0 -6
  111. package/dist/validations/relations/index.js +0 -13
  112. package/dist/validations/relations/index.js.map +0 -1
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const errors = __importStar(require("../../errors"));
30
- const dialect_1 = __importDefault(require("../dialect"));
31
- const schema_inspector_1 = __importDefault(require("./schema-inspector"));
32
- class PostgresDialect extends dialect_1.default {
33
- constructor(db) {
34
- super(db, 'postgres');
35
- this.schemaInspector = new schema_inspector_1.default(db);
36
- }
37
- useReturning() {
38
- return true;
39
- }
40
- async initialize() {
41
- // Don't cast DATE string to Date()
42
- this.db.connection.client.driver.types.setTypeParser(this.db.connection.client.driver.types.builtins.DATE, 'text', (v) => v);
43
- this.db.connection.client.driver.types.setTypeParser(this.db.connection.client.driver.types.builtins.NUMERIC, 'text', parseFloat);
44
- }
45
- usesForeignKeys() {
46
- return true;
47
- }
48
- getSqlType(type) {
49
- switch (type) {
50
- case 'timestamp': {
51
- return 'datetime';
52
- }
53
- default: {
54
- return type;
55
- }
56
- }
57
- }
58
- transformErrors(error) {
59
- switch (error.code) {
60
- case '23502': {
61
- throw new errors.NotNullError({
62
- column: 'column' in error ? `${error.column}` : undefined,
63
- });
64
- }
65
- default: {
66
- super.transformErrors(error);
67
- }
68
- }
69
- }
70
- }
71
- exports.default = PostgresDialect;
72
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dialects/postgresql/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qDAAuC;AACvC,yDAAiC;AACjC,0EAA2D;AAE3D,MAAqB,eAAgB,SAAQ,iBAAO;IAGlD,YAAY,EAAY;QACtB,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAEtB,IAAI,CAAC,eAAe,GAAG,IAAI,0BAAyB,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU;QACd,mCAAmC;QACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EACpD,MAAM,EACN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACT,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EACvD,MAAM,EACN,UAAU,CACX,CAAC;IACJ,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,QAAQ,IAAI,EAAE;YACZ,KAAK,WAAW,CAAC,CAAC;gBAChB,OAAO,UAAU,CAAC;aACnB;YACD,OAAO,CAAC,CAAC;gBACP,OAAO,IAAI,CAAC;aACb;SACF;IACH,CAAC;IAED,eAAe,CAAC,KAA4B;QAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,OAAO,CAAC,CAAC;gBACZ,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC;oBAC5B,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;iBAC1D,CAAC,CAAC;aACJ;YACD,OAAO,CAAC,CAAC;gBACP,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;IACH,CAAC;CACF;AAtDD,kCAsDC"}
@@ -1,12 +0,0 @@
1
- import { Database } from '../..';
2
- import { Schema, Column, Index, ForeignKey } from '../types';
3
- export default class PostgresqlSchemaInspector {
4
- db: Database;
5
- constructor(db: Database);
6
- getSchema(): Promise<Schema>;
7
- getDatabaseSchema(): string;
8
- getTables(): Promise<string[]>;
9
- getColumns(tableName: string): Promise<Column[]>;
10
- getIndexes(tableName: string): Promise<Index[]>;
11
- getForeignKeys(tableName: string): Promise<ForeignKey[]>;
12
- }
@@ -1,236 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const SQL_QUERIES = {
4
- TABLE_LIST: /* sql */ `
5
- SELECT *
6
- FROM information_schema.tables
7
- WHERE
8
- table_schema = ?
9
- AND table_type = 'BASE TABLE'
10
- AND table_name != 'geometry_columns'
11
- AND table_name != 'spatial_ref_sys';
12
- `,
13
- LIST_COLUMNS: /* sql */ `
14
- SELECT data_type, column_name, character_maximum_length, column_default, is_nullable
15
- FROM information_schema.columns
16
- WHERE table_schema = ? AND table_name = ?;
17
- `,
18
- INDEX_LIST: /* sql */ `
19
- SELECT
20
- ix.indexrelid,
21
- i.relname as index_name,
22
- a.attname as column_name,
23
- ix.indisunique as is_unique,
24
- ix.indisprimary as is_primary
25
- FROM
26
- pg_class t,
27
- pg_namespace s,
28
- pg_class i,
29
- pg_index ix,
30
- pg_attribute a
31
- WHERE
32
- t.oid = ix.indrelid
33
- AND i.oid = ix.indexrelid
34
- AND a.attrelid = t.oid
35
- AND a.attnum = ANY(ix.indkey)
36
- AND t.relkind = 'r'
37
- AND t.relnamespace = s.oid
38
- AND s.nspname = ?
39
- AND t.relname = ?;
40
- `,
41
- FOREIGN_KEY_LIST: /* sql */ `
42
- SELECT
43
- tco."constraint_name" as constraint_name
44
- FROM information_schema.table_constraints tco
45
- WHERE
46
- tco.constraint_type = 'FOREIGN KEY'
47
- AND tco.constraint_schema = ?
48
- AND tco.table_name = ?
49
- `,
50
- FOREIGN_KEY_REFERENCES: /* sql */ `
51
- SELECT
52
- kcu."constraint_name" as constraint_name,
53
- kcu."column_name" as column_name
54
-
55
- FROM information_schema.key_column_usage kcu
56
- WHERE kcu.constraint_name=ANY(?)
57
- AND kcu.table_schema = ?
58
- AND kcu.table_name = ?;
59
- `,
60
- FOREIGN_KEY_REFERENCES_CONSTRAIN: /* sql */ `
61
- SELECT
62
- rco.update_rule as on_update,
63
- rco.delete_rule as on_delete,
64
- rco."unique_constraint_name" as unique_constraint_name
65
- FROM information_schema.referential_constraints rco
66
- WHERE rco.constraint_name=ANY(?)
67
- AND rco.constraint_schema = ?
68
- `,
69
- FOREIGN_KEY_REFERENCES_CONSTRAIN_RFERENCE: /* sql */ `
70
- SELECT
71
- rel_kcu."table_name" as foreign_table,
72
- rel_kcu."column_name" as fk_column_name
73
- FROM information_schema.key_column_usage rel_kcu
74
- WHERE rel_kcu.constraint_name=?
75
- AND rel_kcu.table_schema = ?
76
- `,
77
- };
78
- const toStrapiType = (column) => {
79
- const rootType = column.data_type.toLowerCase().match(/[^(), ]+/)?.[0];
80
- switch (rootType) {
81
- case 'integer': {
82
- // find a way to figure out the increments
83
- return { type: 'integer' };
84
- }
85
- case 'text': {
86
- return { type: 'text', args: ['longtext'] };
87
- }
88
- case 'boolean': {
89
- return { type: 'boolean' };
90
- }
91
- case 'character': {
92
- return { type: 'string', args: [column.character_maximum_length] };
93
- }
94
- case 'timestamp': {
95
- return { type: 'datetime', args: [{ useTz: false, precision: 6 }] };
96
- }
97
- case 'date': {
98
- return { type: 'date' };
99
- }
100
- case 'time': {
101
- return { type: 'time', args: [{ precision: 3 }] };
102
- }
103
- case 'numeric': {
104
- return { type: 'decimal', args: [10, 2] };
105
- }
106
- case 'real':
107
- case 'double': {
108
- return { type: 'double' };
109
- }
110
- case 'bigint': {
111
- return { type: 'bigInteger' };
112
- }
113
- case 'jsonb': {
114
- return { type: 'jsonb' };
115
- }
116
- default: {
117
- return { type: 'specificType', args: [column.data_type] };
118
- }
119
- }
120
- };
121
- const getIndexType = (index) => {
122
- if (index.is_primary) {
123
- return 'primary';
124
- }
125
- if (index.is_unique) {
126
- return 'unique';
127
- }
128
- return null;
129
- };
130
- class PostgresqlSchemaInspector {
131
- constructor(db) {
132
- this.db = db;
133
- }
134
- async getSchema() {
135
- const schema = { tables: [] };
136
- const tables = await this.getTables();
137
- schema.tables = await Promise.all(tables.map(async (tableName) => {
138
- const columns = await this.getColumns(tableName);
139
- const indexes = await this.getIndexes(tableName);
140
- const foreignKeys = await this.getForeignKeys(tableName);
141
- return {
142
- name: tableName,
143
- columns,
144
- indexes,
145
- foreignKeys,
146
- };
147
- }));
148
- return schema;
149
- }
150
- getDatabaseSchema() {
151
- return this.db.getSchemaName() || 'public';
152
- }
153
- async getTables() {
154
- const { rows } = await this.db.connection.raw(SQL_QUERIES.TABLE_LIST, [
155
- this.getDatabaseSchema(),
156
- ]);
157
- return rows.map((row) => row.table_name);
158
- }
159
- async getColumns(tableName) {
160
- const { rows } = await this.db.connection.raw(SQL_QUERIES.LIST_COLUMNS, [
161
- this.getDatabaseSchema(),
162
- tableName,
163
- ]);
164
- return rows.map((row) => {
165
- const { type, args = [], ...rest } = toStrapiType(row);
166
- const defaultTo = row.column_default && row.column_default.includes('nextval(') ? null : row.column_default;
167
- return {
168
- type,
169
- args,
170
- defaultTo,
171
- name: row.column_name,
172
- notNullable: row.is_nullable === 'NO',
173
- unsigned: false,
174
- ...rest,
175
- };
176
- });
177
- }
178
- async getIndexes(tableName) {
179
- const { rows } = await this.db.connection.raw(SQL_QUERIES.INDEX_LIST, [
180
- this.getDatabaseSchema(),
181
- tableName,
182
- ]);
183
- const ret = {};
184
- for (const index of rows) {
185
- if (index.column_name === 'id') {
186
- continue;
187
- }
188
- if (!ret[index.indexrelid]) {
189
- ret[index.indexrelid] = {
190
- columns: [index.column_name],
191
- name: index.index_name,
192
- type: getIndexType(index),
193
- };
194
- }
195
- else {
196
- ret[index.indexrelid].columns.push(index.column_name);
197
- }
198
- }
199
- return Object.values(ret);
200
- }
201
- async getForeignKeys(tableName) {
202
- const { rows } = await this.db.connection.raw(SQL_QUERIES.FOREIGN_KEY_LIST, [this.getDatabaseSchema(), tableName]);
203
- const ret = {};
204
- for (const fk of rows) {
205
- ret[fk.constraint_name] = {
206
- name: fk.constraint_name,
207
- columns: [],
208
- referencedColumns: [],
209
- referencedTable: null,
210
- onUpdate: null,
211
- onDelete: null,
212
- };
213
- }
214
- const constraintNames = Object.keys(ret);
215
- const dbSchema = this.getDatabaseSchema();
216
- if (constraintNames.length > 0) {
217
- const { rows: fkReferences } = await this.db.connection.raw(SQL_QUERIES.FOREIGN_KEY_REFERENCES, [[constraintNames], dbSchema, tableName]);
218
- for (const fkReference of fkReferences) {
219
- ret[fkReference.constraint_name].columns.push(fkReference.column_name);
220
- const { rows: fkReferencesConstraint } = await this.db.connection.raw(SQL_QUERIES.FOREIGN_KEY_REFERENCES_CONSTRAIN, [[fkReference.constraint_name], dbSchema]);
221
- for (const fkReferenceC of fkReferencesConstraint) {
222
- const { rows: fkReferencesConstraintReferece } = await this.db.connection.raw(SQL_QUERIES.FOREIGN_KEY_REFERENCES_CONSTRAIN_RFERENCE, [fkReferenceC.unique_constraint_name, dbSchema]);
223
- for (const fkReferenceConst of fkReferencesConstraintReferece) {
224
- ret[fkReference.constraint_name].referencedTable = fkReferenceConst.foreign_table;
225
- ret[fkReference.constraint_name].referencedColumns.push(fkReferenceConst.fk_column_name);
226
- }
227
- ret[fkReference.constraint_name].onUpdate = fkReferenceC.on_update.toUpperCase();
228
- ret[fkReference.constraint_name].onDelete = fkReferenceC.on_delete.toUpperCase();
229
- }
230
- }
231
- }
232
- return Object.values(ret);
233
- }
234
- }
235
- exports.default = PostgresqlSchemaInspector;
236
- //# sourceMappingURL=schema-inspector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-inspector.js","sourceRoot":"","sources":["../../../src/dialects/postgresql/schema-inspector.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /// <reference types="node" />
2
- import Dialect from '../dialect';
3
- import SqliteSchemaInspector from './schema-inspector';
4
- import { Database } from '../..';
5
- export default class SqliteDialect extends Dialect {
6
- schemaInspector: SqliteSchemaInspector;
7
- constructor(db: Database);
8
- configure(): void;
9
- useReturning(): boolean;
10
- initialize(): Promise<void>;
11
- canAlterConstraints(): boolean;
12
- getSqlType(type: string): string;
13
- supportsOperator(operator: string): boolean;
14
- startSchemaUpdate(): Promise<void>;
15
- endSchemaUpdate(): Promise<void>;
16
- transformErrors(error: NodeJS.ErrnoException): void;
17
- canAddIncrements(): boolean;
18
- }
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const path_1 = __importDefault(require("path"));
30
- const fs_extra_1 = __importDefault(require("fs-extra"));
31
- const errors = __importStar(require("../../errors"));
32
- const dialect_1 = __importDefault(require("../dialect"));
33
- const schema_inspector_1 = __importDefault(require("./schema-inspector"));
34
- const UNSUPPORTED_OPERATORS = ['$jsonSupersetOf'];
35
- class SqliteDialect extends dialect_1.default {
36
- constructor(db) {
37
- super(db, 'sqlite');
38
- this.schemaInspector = new schema_inspector_1.default(db);
39
- }
40
- configure() {
41
- this.db.config.connection.connection.filename = path_1.default.resolve(this.db.config.connection.connection.filename);
42
- const dbDir = path_1.default.dirname(this.db.config.connection.connection.filename);
43
- fs_extra_1.default.ensureDirSync(dbDir);
44
- }
45
- useReturning() {
46
- return true;
47
- }
48
- async initialize() {
49
- await this.db.connection.raw('pragma foreign_keys = on');
50
- }
51
- canAlterConstraints() {
52
- return false;
53
- }
54
- getSqlType(type) {
55
- switch (type) {
56
- case 'enum': {
57
- return 'text';
58
- }
59
- case 'double':
60
- case 'decimal': {
61
- return 'float';
62
- }
63
- case 'timestamp': {
64
- return 'datetime';
65
- }
66
- default: {
67
- return type;
68
- }
69
- }
70
- }
71
- supportsOperator(operator) {
72
- return !UNSUPPORTED_OPERATORS.includes(operator);
73
- }
74
- async startSchemaUpdate() {
75
- await this.db.connection.raw(`pragma foreign_keys = off`);
76
- }
77
- async endSchemaUpdate() {
78
- await this.db.connection.raw(`pragma foreign_keys = on`);
79
- }
80
- transformErrors(error) {
81
- switch (error.errno) {
82
- case 19: {
83
- throw new errors.NotNullError(); // TODO: extract column name
84
- }
85
- default: {
86
- super.transformErrors(error);
87
- }
88
- }
89
- }
90
- canAddIncrements() {
91
- return false;
92
- }
93
- }
94
- exports.default = SqliteDialect;
95
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dialects/sqlite/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,wDAA2B;AAE3B,qDAAuC;AACvC,yDAAiC;AACjC,0EAAuD;AAGvD,MAAM,qBAAqB,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAElD,MAAqB,aAAc,SAAQ,iBAAO;IAGhD,YAAY,EAAY;QACtB,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEpB,IAAI,CAAC,eAAe,GAAG,IAAI,0BAAqB,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,SAAS;QACP,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,GAAG,cAAI,CAAC,OAAO,CAC1D,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAC9C,CAAC;QAEF,MAAM,KAAK,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1E,kBAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3D,CAAC;IAED,mBAAmB;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,QAAQ,IAAI,EAAE;YACZ,KAAK,MAAM,CAAC,CAAC;gBACX,OAAO,MAAM,CAAC;aACf;YACD,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC,CAAC;gBACd,OAAO,OAAO,CAAC;aAChB;YACD,KAAK,WAAW,CAAC,CAAC;gBAChB,OAAO,UAAU,CAAC;aACnB;YACD,OAAO,CAAC,CAAC;gBACP,OAAO,IAAI,CAAC;aACb;SACF;IACH,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe,CAAC,KAA4B;QAC1C,QAAQ,KAAK,CAAC,KAAK,EAAE;YACnB,KAAK,EAAE,CAAC,CAAC;gBACP,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,4BAA4B;aAC9D;YACD,OAAO,CAAC,CAAC;gBACP,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA3ED,gCA2EC"}
@@ -1,11 +0,0 @@
1
- import { Database } from '../..';
2
- import { Schema, Column, Index, ForeignKey } from '../types';
3
- export default class SqliteSchemaInspector {
4
- db: Database;
5
- constructor(db: Database);
6
- getSchema(): Promise<Schema>;
7
- getTables(): Promise<string[]>;
8
- getColumns(tableName: string): Promise<Column[]>;
9
- getIndexes(tableName: string): Promise<Index[]>;
10
- getForeignKeys(tableName: string): Promise<ForeignKey[]>;
11
- }
@@ -1,133 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const SQL_QUERIES = {
4
- TABLE_LIST: `select name from sqlite_master where type = 'table' and name NOT LIKE 'sqlite%'`,
5
- TABLE_INFO: `pragma table_info(??)`,
6
- INDEX_LIST: 'pragma index_list(??)',
7
- INDEX_INFO: 'pragma index_info(??)',
8
- FOREIGN_KEY_LIST: 'pragma foreign_key_list(??)',
9
- };
10
- const toStrapiType = (column) => {
11
- const { type } = column;
12
- const rootType = type.toLowerCase().match(/[^(), ]+/)?.[0];
13
- switch (rootType) {
14
- case 'integer': {
15
- if (column.pk) {
16
- return { type: 'increments', args: [{ primary: true, primaryKey: true }] };
17
- }
18
- return { type: 'integer' };
19
- }
20
- case 'float': {
21
- return { type: 'float', args: [10, 2] };
22
- }
23
- case 'bigint': {
24
- return { type: 'bigInteger' };
25
- }
26
- case 'varchar': {
27
- const length = type.slice(8, type.length - 1);
28
- return { type: 'string', args: [Number(length)] };
29
- }
30
- case 'text': {
31
- return { type: 'text', args: ['longtext'] };
32
- }
33
- case 'json': {
34
- return { type: 'jsonb' };
35
- }
36
- case 'boolean': {
37
- return { type: 'boolean' };
38
- }
39
- case 'datetime': {
40
- return { type: 'datetime', args: [{ useTz: false, precision: 6 }] };
41
- }
42
- case 'date': {
43
- return { type: 'date' };
44
- }
45
- case 'time': {
46
- return { type: 'time', args: [{ precision: 3 }] };
47
- }
48
- default: {
49
- return { type: 'specificType', args: [column.data_type] };
50
- }
51
- }
52
- };
53
- class SqliteSchemaInspector {
54
- constructor(db) {
55
- this.db = db;
56
- }
57
- async getSchema() {
58
- const schema = { tables: [] };
59
- const tables = await this.getTables();
60
- for (const tableName of tables) {
61
- const columns = await this.getColumns(tableName);
62
- const indexes = await this.getIndexes(tableName);
63
- const foreignKeys = await this.getForeignKeys(tableName);
64
- schema.tables.push({
65
- name: tableName,
66
- columns,
67
- indexes,
68
- foreignKeys,
69
- });
70
- }
71
- return schema;
72
- }
73
- async getTables() {
74
- const rows = await this.db.connection.raw(SQL_QUERIES.TABLE_LIST);
75
- return rows.map((row) => row.name);
76
- }
77
- async getColumns(tableName) {
78
- const rows = await this.db.connection.raw(SQL_QUERIES.TABLE_INFO, [tableName]);
79
- return rows.map((row) => {
80
- const { type, args = [], ...rest } = toStrapiType(row);
81
- return {
82
- type,
83
- args,
84
- name: row.name,
85
- defaultTo: row.dflt_value,
86
- notNullable: row.notnull !== null ? Boolean(row.notnull) : null,
87
- unsigned: false,
88
- ...rest,
89
- };
90
- });
91
- }
92
- async getIndexes(tableName) {
93
- const indexes = await this.db.connection.raw(SQL_QUERIES.INDEX_LIST, [tableName]);
94
- const ret = [];
95
- for (const index of indexes.filter((index) => !index.name.startsWith('sqlite_'))) {
96
- const res = await this.db.connection.raw(SQL_QUERIES.INDEX_INFO, [
97
- index.name,
98
- ]);
99
- const type = index.unique ? 'unique' : null;
100
- ret.push({
101
- columns: res.map((row) => row.name),
102
- name: index.name,
103
- type,
104
- });
105
- }
106
- return ret;
107
- }
108
- async getForeignKeys(tableName) {
109
- const fks = await this.db.connection.raw(SQL_QUERIES.FOREIGN_KEY_LIST, [
110
- tableName,
111
- ]);
112
- const ret = {};
113
- for (const fk of fks) {
114
- if (!ret[fk.id]) {
115
- ret[fk.id] = {
116
- // TODO: name, // find name
117
- columns: [fk.from],
118
- referencedColumns: [fk.to],
119
- referencedTable: fk.table,
120
- onUpdate: fk.on_update.toUpperCase(),
121
- onDelete: fk.on_delete.toUpperCase(),
122
- };
123
- }
124
- else {
125
- ret[fk.id].columns.push(fk.from);
126
- ret[fk.id].referencedColumns.push(fk.to);
127
- }
128
- }
129
- return Object.values(ret);
130
- }
131
- }
132
- exports.default = SqliteSchemaInspector;
133
- //# sourceMappingURL=schema-inspector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-inspector.js","sourceRoot":"","sources":["../../../src/dialects/sqlite/schema-inspector.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- export interface Schema {
2
- tables: Table[];
3
- }
4
- export interface Table {
5
- name: string;
6
- columns: Column[];
7
- indexes: Index[];
8
- foreignKeys: ForeignKey[];
9
- }
10
- export interface Column {
11
- type: string;
12
- name: string;
13
- args?: unknown[];
14
- defaultTo?: unknown;
15
- notNullable: boolean | null;
16
- unsigned?: boolean;
17
- unique?: boolean;
18
- primary?: boolean;
19
- }
20
- export type IndexType = 'primary' | 'unique' | null;
21
- export interface Index {
22
- columns: string[];
23
- name: string;
24
- type: IndexType;
25
- }
26
- export interface ForeignKey {
27
- name?: string;
28
- columns: string[];
29
- referencedColumns: string[];
30
- referencedTable: string | null;
31
- onUpdate: string | null;
32
- onDelete: string | null;
33
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dialects/types.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- export default class DatabaseError extends Error {
2
- details: unknown;
3
- constructor(message?: string, details?: {});
4
- }