@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/database",
3
- "version": "4.13.0-alpha.0",
3
+ "version": "4.13.0-alpha.2",
4
4
  "description": "Strapi's database layer",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -33,7 +33,7 @@
33
33
  "lint": "run -T eslint ."
34
34
  },
35
35
  "dependencies": {
36
- "@strapi/utils": "4.13.0-alpha.0",
36
+ "@strapi/utils": "4.13.0-alpha.2",
37
37
  "date-fns": "2.30.0",
38
38
  "debug": "4.3.4",
39
39
  "fs-extra": "10.0.0",
@@ -46,5 +46,5 @@
46
46
  "node": ">=16.0.0 <=20.x.x",
47
47
  "npm": ">=6.0.0"
48
48
  },
49
- "gitHead": "41844c2867621a1f47dd6ae6ac83283aa54b22f8"
49
+ "gitHead": "2cb056a9343bc202f28ab01aa899715783138f03"
50
50
  }
@@ -1,2 +0,0 @@
1
- import { Knex } from 'knex';
2
- export declare const createConnection: (config: Knex.Config) => Knex<any, unknown[]>;
@@ -1,57 +0,0 @@
1
- "use strict";
2
- /* eslint-disable import/no-extraneous-dependencies */
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createConnection = void 0;
8
- const knex_1 = __importDefault(require("knex"));
9
- const utils_1 = require("@strapi/utils");
10
- const index_1 = __importDefault(require("knex/lib/dialects/sqlite3/index"));
11
- class LegacySqliteClient extends index_1.default {
12
- _driver() {
13
- return require('sqlite3');
14
- }
15
- }
16
- const clientMap = {
17
- 'better-sqlite3': 'better-sqlite3',
18
- '@vscode/sqlite3': 'sqlite',
19
- sqlite3: LegacySqliteClient,
20
- };
21
- const trySqlitePackage = (packageName) => {
22
- try {
23
- require.resolve(packageName);
24
- return packageName;
25
- }
26
- catch (error) {
27
- if (utils_1.errors.isError(error) && error.code === 'MODULE_NOT_FOUND') {
28
- return false;
29
- }
30
- throw error;
31
- }
32
- };
33
- const getSqlitePackageName = () => {
34
- // NOTE: allow forcing the package to use (mostly used for testing purposes)
35
- if (typeof process.env.SQLITE_PKG !== 'undefined') {
36
- return process.env.SQLITE_PKG;
37
- }
38
- // NOTE: this tries to find the best sqlite module possible to use
39
- // while keeping retro compatibility
40
- const matchingPackage = trySqlitePackage('better-sqlite3') ||
41
- trySqlitePackage('@vscode/sqlite3') ||
42
- trySqlitePackage('sqlite3');
43
- if (!matchingPackage) {
44
- throw new Error('No sqlite package found');
45
- }
46
- return matchingPackage;
47
- };
48
- const createConnection = (config) => {
49
- const knexConfig = { ...config };
50
- if (knexConfig.client === 'sqlite') {
51
- const sqlitePackageName = getSqlitePackageName();
52
- knexConfig.client = clientMap[sqlitePackageName];
53
- }
54
- return (0, knex_1.default)(knexConfig);
55
- };
56
- exports.createConnection = createConnection;
57
- //# sourceMappingURL=connection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":";AAAA,sDAAsD;;;;;;AAEtD,gDAAkC;AAClC,yCAAuC;AAEvC,4EAA2D;AAE3D,MAAM,kBAAmB,SAAQ,eAAY;IAC3C,OAAO;QACL,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,SAAS,GAAG;IAChB,gBAAgB,EAAE,gBAAgB;IAClC,iBAAiB,EAAE,QAAQ;IAC3B,OAAO,EAAE,kBAAkB;CACnB,CAAC;AAIX,MAAM,gBAAgB,GAAG,CAAC,WAAsB,EAAqB,EAAE;IACrE,IAAI;QACF,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7B,OAAO,WAAW,CAAC;KACpB;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,cAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;YAC9D,OAAO,KAAK,CAAC;SACd;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,GAAc,EAAE;IAC3C,4EAA4E;IAC5E,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,WAAW,EAAE;QACjD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAuB,CAAC;KAC5C;IAED,kEAAkE;IAClE,oCAAoC;IACpC,MAAM,eAAe,GACnB,gBAAgB,CAAC,gBAAgB,CAAC;QAClC,gBAAgB,CAAC,iBAAiB,CAAC;QACnC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE9B,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAE,EAAE;IACtD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IACjC,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE;QAClC,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;QAEjD,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;KAClD;IAED,OAAO,IAAA,cAAI,EAAC,UAAU,CAAC,CAAC;AAC1B,CAAC,CAAC;AATW,QAAA,gBAAgB,oBAS3B"}
@@ -1,21 +0,0 @@
1
- import type { Database } from '..';
2
- export default class Dialect {
3
- db: Database;
4
- client: string;
5
- constructor(db: Database, client: string);
6
- configure(): void;
7
- initialize(): void;
8
- getSqlType(type: unknown): unknown;
9
- canAlterConstraints(): boolean;
10
- usesForeignKeys(): boolean;
11
- useReturning(): boolean;
12
- supportsUnsigned(): boolean;
13
- supportsWindowFunctions(): boolean;
14
- supportsOperator(operator: string): boolean;
15
- startSchemaUpdate(): Promise<void>;
16
- endSchemaUpdate(): Promise<void>;
17
- transformErrors(error: Error | {
18
- message: string;
19
- }): void;
20
- canAddIncrements(): boolean;
21
- }
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // TODO: make abstract
4
- class Dialect {
5
- constructor(db, client) {
6
- this.db = db;
7
- this.client = client;
8
- }
9
- configure() { }
10
- initialize() { }
11
- getSqlType(type) {
12
- return type;
13
- }
14
- canAlterConstraints() {
15
- return true;
16
- }
17
- usesForeignKeys() {
18
- return false;
19
- }
20
- useReturning() {
21
- return false;
22
- }
23
- supportsUnsigned() {
24
- return false;
25
- }
26
- supportsWindowFunctions() {
27
- return true;
28
- }
29
- supportsOperator(operator) {
30
- return true;
31
- }
32
- async startSchemaUpdate() {
33
- // noop
34
- }
35
- async endSchemaUpdate() {
36
- // noop
37
- }
38
- transformErrors(error) {
39
- if (error instanceof Error) {
40
- throw error;
41
- }
42
- throw new Error(error.message);
43
- }
44
- canAddIncrements() {
45
- return true;
46
- }
47
- }
48
- exports.default = Dialect;
49
- //# sourceMappingURL=dialect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../src/dialects/dialect.ts"],"names":[],"mappings":";;AAEA,sBAAsB;AACtB,MAAqB,OAAO;IAK1B,YAAY,EAAY,EAAE,MAAc;QACtC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,KAAI,CAAC;IAEd,UAAU,KAAI,CAAC;IAEf,UAAU,CAAC,IAAa;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO;IACT,CAAC;IAED,eAAe,CAAC,KAAkC;QAChD,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,MAAM,KAAK,CAAC;SACb;QAED,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA7DD,0BA6DC"}
@@ -1,4 +0,0 @@
1
- import type { Database } from '..';
2
- import Dialect from './dialect';
3
- declare const getDialect: (db: Database) => Dialect;
4
- export { Dialect, getDialect };
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getDialect = exports.Dialect = void 0;
7
- const dialect_1 = __importDefault(require("./dialect"));
8
- exports.Dialect = dialect_1.default;
9
- /**
10
- * Require our dialect-specific code
11
- */
12
- const getDialectClass = (client) => {
13
- switch (client) {
14
- case 'postgres':
15
- return require('./postgresql');
16
- case 'mysql':
17
- return require('./mysql');
18
- case 'sqlite':
19
- return require('./sqlite');
20
- default:
21
- throw new Error(`Unknown dialect ${client}`);
22
- }
23
- };
24
- /**
25
- * Get the dialect of a database client
26
- */
27
- const getDialectName = (client) => {
28
- switch (client) {
29
- case 'postgres':
30
- return 'postgres';
31
- case 'mysql':
32
- case 'mysql2':
33
- return 'mysql';
34
- case 'sqlite':
35
- case 'sqlite-legacy':
36
- return 'sqlite';
37
- default:
38
- throw new Error(`Unknown dialect ${client}`);
39
- }
40
- };
41
- const getDialect = (db) => {
42
- const { client } = db.config.connection;
43
- const dialectName = getDialectName(client);
44
- const constructor = getDialectClass(dialectName);
45
- const dialect = new constructor(db, dialectName);
46
- return dialect;
47
- };
48
- exports.getDialect = getDialect;
49
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dialects/index.ts"],"names":[],"mappings":";;;;;;AACA,wDAAgC;AA8CvB,kBA9CF,iBAAO,CA8CE;AA5ChB;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,MAAc,EAAkB,EAAE;IACzD,QAAQ,MAAM,EAAE;QACd,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;QACjC,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;KAChD;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE;IACxC,QAAQ,MAAM,EAAE;QACd,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAClB;YACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;KAChD;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAY,EAAE,EAAE;IAClC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAEjD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEgB,gCAAU"}
@@ -1,2 +0,0 @@
1
- export declare const MYSQL = "MYSQL";
2
- export declare const MARIADB = "MARIADB";
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MARIADB = exports.MYSQL = void 0;
4
- exports.MYSQL = 'MYSQL';
5
- exports.MARIADB = 'MARIADB';
6
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dialects/mysql/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,OAAO,GAAG,SAAS,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Database } from '../..';
2
- import { MARIADB, MYSQL } from './constants';
3
- export interface Information {
4
- database: typeof MARIADB | typeof MYSQL | null;
5
- version: string | null;
6
- }
7
- export default class MysqlDatabaseInspector {
8
- db: Database;
9
- constructor(db: Database);
10
- getInformation(): Promise<Information>;
11
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const constants_1 = require("./constants");
4
- const SQL_QUERIES = {
5
- VERSION: `SELECT version() as version`,
6
- };
7
- class MysqlDatabaseInspector {
8
- constructor(db) {
9
- this.db = db;
10
- }
11
- async getInformation() {
12
- let database;
13
- let versionNumber;
14
- try {
15
- const [results] = await this.db.connection.raw(SQL_QUERIES.VERSION);
16
- const versionSplit = results[0].version.split('-');
17
- const databaseName = versionSplit[1];
18
- versionNumber = versionSplit[0];
19
- database = databaseName && databaseName.toLowerCase() === 'mariadb' ? constants_1.MARIADB : constants_1.MYSQL;
20
- }
21
- catch (e) {
22
- return {
23
- database: null,
24
- version: null,
25
- };
26
- }
27
- return {
28
- database,
29
- version: versionNumber,
30
- };
31
- }
32
- }
33
- exports.default = MysqlDatabaseInspector;
34
- //# sourceMappingURL=database-inspector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database-inspector.js","sourceRoot":"","sources":["../../../src/dialects/mysql/database-inspector.ts"],"names":[],"mappings":";;AACA,2CAA6C;AAO7C,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,6BAA6B;CACvC,CAAC;AAEF,MAAqB,sBAAsB;IAGzC,YAAY,EAAY;QACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,QAAiC,CAAC;QACtC,IAAI,aAAqC,CAAC;QAC1C,IAAI;YACF,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACpE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACrC,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,QAAQ,GAAG,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAO,CAAC,CAAC,CAAC,iBAAK,CAAC;SACvF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;aACd,CAAC;SACH;QAED,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,aAAa;SACvB,CAAC;IACJ,CAAC;CACF;AA5BD,yCA4BC"}
@@ -1,19 +0,0 @@
1
- import Dialect from '../dialect';
2
- import MysqlSchemaInspector from './schema-inspector';
3
- import MysqlDatabaseInspector from './database-inspector';
4
- import { Database } from '../..';
5
- import type { Information } from './database-inspector';
6
- export default class MysqlDialect extends Dialect {
7
- schemaInspector: MysqlSchemaInspector;
8
- databaseInspector: MysqlDatabaseInspector;
9
- info: Information | null;
10
- constructor(db: Database);
11
- configure(): void;
12
- initialize(): Promise<void>;
13
- startSchemaUpdate(): Promise<void>;
14
- endSchemaUpdate(): Promise<void>;
15
- supportsUnsigned(): boolean;
16
- supportsWindowFunctions(): boolean;
17
- usesForeignKeys(): boolean;
18
- transformErrors(error: any): void;
19
- }
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const semver_1 = __importDefault(require("semver"));
7
- const dialect_1 = __importDefault(require("../dialect"));
8
- const schema_inspector_1 = __importDefault(require("./schema-inspector"));
9
- const database_inspector_1 = __importDefault(require("./database-inspector"));
10
- const constants_1 = require("./constants");
11
- class MysqlDialect extends dialect_1.default {
12
- constructor(db) {
13
- super(db, 'mysql');
14
- this.info = null;
15
- this.schemaInspector = new schema_inspector_1.default(db);
16
- this.databaseInspector = new database_inspector_1.default(db);
17
- }
18
- configure() {
19
- this.db.config.connection.connection.supportBigNumbers = true;
20
- // Only allow bigNumberStrings option set to be true if no connection option passed
21
- // Otherwise bigNumberStrings option should be allowed to used from DB config
22
- if (this.db.config.connection.connection.bigNumberStrings === undefined) {
23
- this.db.config.connection.connection.bigNumberStrings = true;
24
- }
25
- this.db.config.connection.connection.typeCast = (field, next) => {
26
- if (field.type === 'DECIMAL' || field.type === 'NEWDECIMAL') {
27
- const value = field.string();
28
- return value === null ? null : Number(value);
29
- }
30
- if (field.type === 'TINY' && field.length === 1) {
31
- const value = field.string();
32
- return value ? value === '1' : null;
33
- }
34
- if (field.type === 'DATE') {
35
- return field.string();
36
- }
37
- return next();
38
- };
39
- }
40
- async initialize() {
41
- try {
42
- await this.db.connection.raw(`set session sql_require_primary_key = 0;`);
43
- }
44
- catch (err) {
45
- // Ignore error due to lack of session permissions
46
- }
47
- this.info = await this.databaseInspector.getInformation();
48
- }
49
- async startSchemaUpdate() {
50
- try {
51
- await this.db.connection.raw(`set foreign_key_checks = 0;`);
52
- await this.db.connection.raw(`set session sql_require_primary_key = 0;`);
53
- }
54
- catch (err) {
55
- // Ignore error due to lack of session permissions
56
- }
57
- }
58
- async endSchemaUpdate() {
59
- await this.db.connection.raw(`set foreign_key_checks = 1;`);
60
- }
61
- supportsUnsigned() {
62
- return true;
63
- }
64
- supportsWindowFunctions() {
65
- const isMysqlDB = !this.info.database || this.info.database === constants_1.MYSQL;
66
- const isBeforeV8 = !semver_1.default.valid(this.info.version) || semver_1.default.lt(this.info.version, '8.0.0');
67
- if (isMysqlDB && isBeforeV8) {
68
- return false;
69
- }
70
- return true;
71
- }
72
- usesForeignKeys() {
73
- return true;
74
- }
75
- transformErrors(error) {
76
- super.transformErrors(error);
77
- }
78
- }
79
- exports.default = MysqlDialect;
80
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dialects/mysql/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { Database } from '../..';
2
- import type { Column, ForeignKey, Index, Schema } from '../types';
3
- export default class MysqlSchemaInspector {
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,206 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const SQL_QUERIES = {
4
- TABLE_LIST: /* sql */ `
5
- SELECT
6
- t.table_name as table_name
7
- FROM information_schema.tables t
8
- WHERE table_type = 'BASE TABLE'
9
- AND table_schema = schema();
10
- `,
11
- LIST_COLUMNS: /* sql */ `
12
- SELECT
13
- c.data_type as data_type,
14
- c.column_name as column_name,
15
- c.character_maximum_length as character_maximum_length,
16
- c.column_default as column_default,
17
- c.is_nullable as is_nullable,
18
- c.column_type as column_type,
19
- c.column_key as column_key
20
- FROM information_schema.columns c
21
- WHERE table_schema = database()
22
- AND table_name = ?;
23
- `,
24
- INDEX_LIST: /* sql */ `
25
- show index from ??;
26
- `,
27
- FOREIGN_KEY_LIST: /* sql */ `
28
- SELECT
29
- tc.constraint_name as constraint_name
30
- FROM information_schema.table_constraints tc
31
- WHERE tc.constraint_type = 'FOREIGN KEY'
32
- AND tc.table_schema = database()
33
- AND tc.table_name = ?;
34
- `,
35
- FOREIGN_KEY_REFERENCES: /* sql */ `
36
- SELECT
37
- kcu.constraint_name as constraint_name,
38
- kcu.column_name as column_name,
39
- kcu.referenced_table_name as referenced_table_name,
40
- kcu.referenced_column_name as referenced_column_name
41
- FROM information_schema.key_column_usage kcu
42
- WHERE kcu.constraint_name in (?)
43
- AND kcu.table_schema = database()
44
- AND kcu.table_name = ?;
45
- `,
46
- FOREIGN_KEY_REFERENTIALS_CONSTRAINTS: /* sql */ `
47
- SELECT
48
- rc.constraint_name as constraint_name,
49
- rc.update_rule as on_update,
50
- rc.delete_rule as on_delete
51
- FROM information_schema.referential_constraints AS rc
52
- WHERE rc.constraint_name in (?)
53
- AND rc.constraint_schema = database()
54
- AND rc.table_name = ?;
55
- `,
56
- };
57
- const toStrapiType = (column) => {
58
- const rootType = column.data_type.toLowerCase().match(/[^(), ]+/)?.[0];
59
- switch (rootType) {
60
- case 'int': {
61
- if (column.column_key === 'PRI') {
62
- return { type: 'increments', args: [{ primary: true, primaryKey: true }], unsigned: false };
63
- }
64
- return { type: 'integer' };
65
- }
66
- case 'decimal': {
67
- return { type: 'decimal', args: [10, 2] };
68
- }
69
- case 'double': {
70
- return { type: 'double' };
71
- }
72
- case 'bigint': {
73
- return { type: 'bigInteger' };
74
- }
75
- case 'enum': {
76
- return { type: 'string' };
77
- }
78
- case 'tinyint': {
79
- return { type: 'boolean' };
80
- }
81
- case 'longtext': {
82
- return { type: 'text', args: ['longtext'] };
83
- }
84
- case 'varchar': {
85
- return { type: 'string', args: [column.character_maximum_length] };
86
- }
87
- case 'datetime': {
88
- return { type: 'datetime', args: [{ useTz: false, precision: 6 }] };
89
- }
90
- case 'date': {
91
- return { type: 'date' };
92
- }
93
- case 'time': {
94
- return { type: 'time', args: [{ precision: 3 }] };
95
- }
96
- case 'timestamp': {
97
- return { type: 'timestamp', args: [{ useTz: false, precision: 6 }] };
98
- }
99
- case 'json': {
100
- return { type: 'jsonb' };
101
- }
102
- default: {
103
- return { type: 'specificType', args: [column.data_type] };
104
- }
105
- }
106
- };
107
- class MysqlSchemaInspector {
108
- constructor(db) {
109
- this.db = db;
110
- }
111
- async getSchema() {
112
- const schema = { tables: [] };
113
- const tables = await this.getTables();
114
- schema.tables = await Promise.all(tables.map(async (tableName) => {
115
- const columns = await this.getColumns(tableName);
116
- const indexes = await this.getIndexes(tableName);
117
- const foreignKeys = await this.getForeignKeys(tableName);
118
- return {
119
- name: tableName,
120
- columns,
121
- indexes,
122
- foreignKeys,
123
- };
124
- }));
125
- return schema;
126
- }
127
- async getTables() {
128
- const [rows] = await this.db.connection.raw(SQL_QUERIES.TABLE_LIST);
129
- return rows.map((row) => row.table_name);
130
- }
131
- async getColumns(tableName) {
132
- const [rows] = await this.db.connection.raw(SQL_QUERIES.LIST_COLUMNS, [
133
- tableName,
134
- ]);
135
- return rows.map((row) => {
136
- const { type, args = [], ...rest } = toStrapiType(row);
137
- return {
138
- type,
139
- args,
140
- defaultTo: row.column_default,
141
- name: row.column_name,
142
- notNullable: row.is_nullable === 'NO',
143
- unsigned: row.column_type.endsWith(' unsigned'),
144
- ...rest,
145
- };
146
- });
147
- }
148
- async getIndexes(tableName) {
149
- const [rows] = await this.db.connection.raw(SQL_QUERIES.INDEX_LIST, [tableName]);
150
- const ret = {};
151
- for (const index of rows) {
152
- if (index.Column_name === 'id') {
153
- continue;
154
- }
155
- if (!ret[index.Key_name]) {
156
- ret[index.Key_name] = {
157
- columns: [index.Column_name],
158
- name: index.Key_name,
159
- type: !index.Non_unique ? 'unique' : null,
160
- };
161
- }
162
- else {
163
- ret[index.Key_name].columns.push(index.Column_name);
164
- }
165
- }
166
- return Object.values(ret);
167
- }
168
- async getForeignKeys(tableName) {
169
- const [rows] = await this.db.connection.raw(SQL_QUERIES.FOREIGN_KEY_LIST, [
170
- tableName,
171
- ]);
172
- const ret = {};
173
- for (const fk of rows) {
174
- ret[fk.constraint_name] = {
175
- name: fk.constraint_name,
176
- columns: [],
177
- referencedColumns: [],
178
- referencedTable: null,
179
- onUpdate: null,
180
- onDelete: null,
181
- };
182
- }
183
- const contraintNames = Object.keys(ret);
184
- if (contraintNames.length > 0) {
185
- const [fkReferences] = await this.db.connection.raw(SQL_QUERIES.FOREIGN_KEY_REFERENCES, [
186
- contraintNames,
187
- tableName,
188
- ]);
189
- for (const fkReference of fkReferences) {
190
- ret[fkReference.constraint_name].referencedTable = fkReference.referenced_table_name;
191
- ret[fkReference.constraint_name].columns.push(fkReference.column_name);
192
- ret[fkReference.constraint_name].referencedColumns.push(fkReference.referenced_column_name);
193
- }
194
- const [fkReferentialConstraints] = await this.db.connection.raw(SQL_QUERIES.FOREIGN_KEY_REFERENTIALS_CONSTRAINTS, [contraintNames, tableName]);
195
- for (const fkReferentialConstraint of fkReferentialConstraints) {
196
- ret[fkReferentialConstraint.constraint_name].onUpdate =
197
- fkReferentialConstraint.on_update.toUpperCase();
198
- ret[fkReferentialConstraint.constraint_name].onDelete =
199
- fkReferentialConstraint.on_delete.toUpperCase();
200
- }
201
- }
202
- return Object.values(ret);
203
- }
204
- }
205
- exports.default = MysqlSchemaInspector;
206
- //# sourceMappingURL=schema-inspector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-inspector.js","sourceRoot":"","sources":["../../../src/dialects/mysql/schema-inspector.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /// <reference types="node" />
2
- import { Database } from '../..';
3
- import Dialect from '../dialect';
4
- import PostgresqlSchemaInspector from './schema-inspector';
5
- export default class PostgresDialect extends Dialect {
6
- schemaInspector: PostgresqlSchemaInspector;
7
- constructor(db: Database);
8
- useReturning(): boolean;
9
- initialize(): Promise<void>;
10
- usesForeignKeys(): boolean;
11
- getSqlType(type: string): string;
12
- transformErrors(error: NodeJS.ErrnoException): void;
13
- }