@typetron/framework 0.5.39 → 0.5.40
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.
- package/Database/Readme.md +13 -4
- package/build/Database/Drivers/DatabaseDriver.d.ts +8 -3
- package/build/Database/Drivers/DatabaseDriver.d.ts.map +1 -1
- package/build/Database/Drivers/DatabaseDriver.js +22 -0
- package/build/Database/Drivers/DatabaseDriver.js.map +1 -1
- package/build/Database/Drivers/MySQL/Alter/index.d.ts +5 -29
- package/build/Database/Drivers/MySQL/Alter/index.d.ts.map +1 -1
- package/build/Database/Drivers/MySQL/Alter/index.js +12 -60
- package/build/Database/Drivers/MySQL/Alter/index.js.map +1 -1
- package/build/Database/Drivers/MySQL/ColumnDefinition.d.ts +3 -5
- package/build/Database/Drivers/MySQL/ColumnDefinition.d.ts.map +1 -1
- package/build/Database/Drivers/MySQL/ColumnDefinition.js +3 -13
- package/build/Database/Drivers/MySQL/ColumnDefinition.js.map +1 -1
- package/build/Database/Drivers/MySQL/Create.d.ts +4 -8
- package/build/Database/Drivers/MySQL/Create.d.ts.map +1 -1
- package/build/Database/Drivers/MySQL/Create.js +4 -38
- package/build/Database/Drivers/MySQL/Create.js.map +1 -1
- package/build/Database/Drivers/MySQL/MysqlDriver.d.ts +2 -5
- package/build/Database/Drivers/MySQL/MysqlDriver.d.ts.map +1 -1
- package/build/Database/Drivers/MySQL/MysqlDriver.js +3 -13
- package/build/Database/Drivers/MySQL/MysqlDriver.js.map +1 -1
- package/build/Database/Drivers/MySQL/Schema.d.ts +9 -12
- package/build/Database/Drivers/MySQL/Schema.d.ts.map +1 -1
- package/build/Database/Drivers/MySQL/Schema.js +12 -52
- package/build/Database/Drivers/MySQL/Schema.js.map +1 -1
- package/build/Database/Drivers/Postgres/Helpers.d.ts +6 -0
- package/build/Database/Drivers/Postgres/Helpers.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/Helpers.js +33 -0
- package/build/Database/Drivers/Postgres/Helpers.js.map +1 -0
- package/build/Database/Drivers/Postgres/PostgresDriver.d.ts +37 -0
- package/build/Database/Drivers/Postgres/PostgresDriver.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/PostgresDriver.js +107 -0
- package/build/Database/Drivers/Postgres/PostgresDriver.js.map +1 -0
- package/build/Database/Drivers/Postgres/Schema.d.ts +5 -0
- package/build/Database/Drivers/Postgres/Schema.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/Schema.js +10 -0
- package/build/Database/Drivers/Postgres/Schema.js.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/Delete.d.ts +6 -0
- package/build/Database/Drivers/Postgres/Statements/Delete.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/Delete.js +15 -0
- package/build/Database/Drivers/Postgres/Statements/Delete.js.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/Select.d.ts +5 -0
- package/build/Database/Drivers/Postgres/Statements/Select.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/Select.js +15 -0
- package/build/Database/Drivers/Postgres/Statements/Select.js.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/Update.d.ts +6 -0
- package/build/Database/Drivers/Postgres/Statements/Update.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/Update.js +15 -0
- package/build/Database/Drivers/Postgres/Statements/Update.js.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/index.d.ts +4 -0
- package/build/Database/Drivers/Postgres/Statements/index.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/index.js +20 -0
- package/build/Database/Drivers/Postgres/Statements/index.js.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/rejectLimit.d.ts +4 -0
- package/build/Database/Drivers/Postgres/Statements/rejectLimit.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/Statements/rejectLimit.js +11 -0
- package/build/Database/Drivers/Postgres/Statements/rejectLimit.js.map +1 -0
- package/build/Database/Drivers/Postgres/index.d.ts +3 -0
- package/build/Database/Drivers/Postgres/index.d.ts.map +1 -0
- package/build/Database/Drivers/Postgres/index.js +31 -0
- package/build/Database/Drivers/Postgres/index.js.map +1 -0
- package/build/Database/Drivers/SQL/Alter/index.d.ts +42 -0
- package/build/Database/Drivers/SQL/Alter/index.d.ts.map +1 -0
- package/build/Database/Drivers/SQL/Alter/index.js +85 -0
- package/build/Database/Drivers/SQL/Alter/index.js.map +1 -0
- package/build/Database/Drivers/SQL/ColumnDefinition.d.ts +10 -0
- package/build/Database/Drivers/SQL/ColumnDefinition.d.ts.map +1 -0
- package/build/Database/Drivers/SQL/ColumnDefinition.js +21 -0
- package/build/Database/Drivers/SQL/ColumnDefinition.js.map +1 -0
- package/build/Database/Drivers/SQL/Create.d.ts +10 -0
- package/build/Database/Drivers/SQL/Create.d.ts.map +1 -0
- package/build/Database/Drivers/SQL/Create.js +36 -0
- package/build/Database/Drivers/SQL/Create.js.map +1 -0
- package/build/Database/Drivers/SQL/Schema.d.ts +15 -2
- package/build/Database/Drivers/SQL/Schema.d.ts.map +1 -1
- package/build/Database/Drivers/SQL/Schema.js +76 -17
- package/build/Database/Drivers/SQL/Schema.js.map +1 -1
- package/build/Database/Drivers/SQL/Statements/BaseStatement.js +1 -1
- package/build/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -1
- package/build/Database/Drivers/SQL/Statements/Update.d.ts.map +1 -1
- package/build/Database/Drivers/SQL/Statements/Update.js +2 -1
- package/build/Database/Drivers/SQL/Statements/Update.js.map +1 -1
- package/build/Database/Drivers/SQLite/Schema.d.ts +4 -10
- package/build/Database/Drivers/SQLite/Schema.d.ts.map +1 -1
- package/build/Database/Drivers/SQLite/Schema.js +3 -23
- package/build/Database/Drivers/SQLite/Schema.js.map +1 -1
- package/build/Database/Drivers/SQLite/SqliteDriver.d.ts +1 -1
- package/build/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -1
- package/build/Database/Drivers/SQLite/SqliteDriver.js +3 -1
- package/build/Database/Drivers/SQLite/SqliteDriver.js.map +1 -1
- package/build/Database/Drivers/index.d.ts +1 -0
- package/build/Database/Drivers/index.d.ts.map +1 -1
- package/build/Database/Drivers/index.js +1 -0
- package/build/Database/Drivers/index.js.map +1 -1
- package/build/Database/Entity.d.ts.map +1 -1
- package/build/Database/Entity.js +4 -0
- package/build/Database/Entity.js.map +1 -1
- package/build/Database/Fields.js +4 -4
- package/build/Database/Fields.js.map +1 -1
- package/build/Database/Helpers.d.ts +4 -0
- package/build/Database/Helpers.d.ts.map +1 -1
- package/build/Database/Helpers.js +11 -7
- package/build/Database/Helpers.js.map +1 -1
- package/build/Database/Types.d.ts.map +1 -1
- package/build/Database/Types.js +2 -1
- package/build/Database/Types.js.map +1 -1
- package/build/Framework/Config/DatabaseConfig.d.ts.map +1 -1
- package/build/Framework/Config/DatabaseConfig.js +7 -0
- package/build/Framework/Config/DatabaseConfig.js.map +1 -1
- package/package.json +3 -1
package/Database/Readme.md
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
## Introduction
|
|
10
10
|
|
|
11
|
-
The Database module contains Typetron's connection layer, SQL query builder, schema drivers, and entity ORM. SQLite and
|
|
12
|
-
`Query` and `Entity` APIs.
|
|
11
|
+
The Database module contains Typetron's connection layer, SQL query builder, schema drivers, and entity ORM. SQLite, MySQL, and Postgres use
|
|
12
|
+
the same `Query` and `Entity` APIs.
|
|
13
13
|
|
|
14
14
|
## Configuration
|
|
15
15
|
|
|
@@ -29,8 +29,17 @@ export const config = new DatabaseConfig({
|
|
|
29
29
|
Query.connection = new Connection(new SqliteDriver(':memory:'))
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
The built-in SQLite driver reads `process.env.database` and otherwise uses `database.sqlite`. The MySQL
|
|
33
|
-
|
|
32
|
+
The built-in SQLite driver reads `process.env.database` and otherwise uses `database.sqlite`. The MySQL and Postgres drivers read the
|
|
33
|
+
`databaseHost`, `databaseUser`, `databasePassword`, and `database` environment values; Postgres also reads `databasePort`. Select a driver
|
|
34
|
+
with `driver: 'mysql'` or `driver: 'postgres'`, or the `databaseDriver` environment value. All queries and entities use the static
|
|
35
|
+
`Query.connection`.
|
|
36
|
+
|
|
37
|
+
Postgres notes:
|
|
38
|
+
|
|
39
|
+
- Query placeholders are written as `?` and translated to `$1`, `$2`, ...; avoid the Postgres `?` JSON operators in raw SQL.
|
|
40
|
+
- `insertOne` reads the id from `lastval()`, so the table needs an identity column. `@PrimaryColumn` creates one when the schema is
|
|
41
|
+
synchronized.
|
|
42
|
+
- `limit` is not supported on `update` and `delete` queries and throws an error.
|
|
34
43
|
|
|
35
44
|
## Queries and Entities
|
|
36
45
|
|
|
@@ -17,12 +17,17 @@ export declare abstract class DatabaseDriver {
|
|
|
17
17
|
abstract run(query: string, params?: SqlValue[]): Promise<void>;
|
|
18
18
|
abstract truncate(table: string): Promise<void>;
|
|
19
19
|
abstract insertOne(query: string, params: SqlValue[]): Promise<number>;
|
|
20
|
-
abstract get<T>(query: string, params
|
|
20
|
+
abstract get<T>(query: string, params?: SqlValue[]): Promise<T[]>;
|
|
21
21
|
abstract first<T>(query: string, params: SqlValue[]): Promise<T | undefined>;
|
|
22
|
-
|
|
22
|
+
tables(): Promise<{
|
|
23
23
|
name: string;
|
|
24
24
|
}[]>;
|
|
25
|
-
|
|
25
|
+
tableExists(table: string): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* SQL condition matching `table_schema` to the connection's schema, with its bindings.
|
|
28
|
+
* Defaults to the SQL standard `current_schema()`.
|
|
29
|
+
*/
|
|
30
|
+
protected currentSchema(): [string, SqlValue[]];
|
|
26
31
|
abstract tableColumns(table: string): Promise<ColumnDefinitionOptions[]>;
|
|
27
32
|
}
|
|
28
33
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExE,UAAU,cAAc;IACpB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACjC;AAED,8BAAsB,cAAc;IAEhC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAE/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEtE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExE,UAAU,cAAc;IACpB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACjC;AAED,8BAAsB,cAAc;IAEhC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAE/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEtE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAEjE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAE5E,MAAM,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAW7B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD;;;OAGG;IACH,SAAS,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAI/C,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAC3E"}
|
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DatabaseDriver = void 0;
|
|
4
4
|
class DatabaseDriver {
|
|
5
|
+
tables() {
|
|
6
|
+
const [schemaCondition, params] = this.currentSchema();
|
|
7
|
+
return this.get(`select table_name as name
|
|
8
|
+
from information_schema.tables
|
|
9
|
+
where table_schema = ${schemaCondition}
|
|
10
|
+
`, params);
|
|
11
|
+
}
|
|
12
|
+
async tableExists(table) {
|
|
13
|
+
const [schemaCondition, params] = this.currentSchema();
|
|
14
|
+
return Boolean(await this.first(`select *
|
|
15
|
+
from information_schema.tables
|
|
16
|
+
where table_name = ?
|
|
17
|
+
and table_schema = ${schemaCondition}
|
|
18
|
+
`, [table, ...params]));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* SQL condition matching `table_schema` to the connection's schema, with its bindings.
|
|
22
|
+
* Defaults to the SQL standard `current_schema()`.
|
|
23
|
+
*/
|
|
24
|
+
currentSchema() {
|
|
25
|
+
return ['current_schema()', []];
|
|
26
|
+
}
|
|
5
27
|
}
|
|
6
28
|
exports.DatabaseDriver = DatabaseDriver;
|
|
7
29
|
//# sourceMappingURL=DatabaseDriver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseDriver.js","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":";;;AAeA,MAAsB,cAAc;
|
|
1
|
+
{"version":3,"file":"DatabaseDriver.js","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":";;;AAeA,MAAsB,cAAc;IAgBhC,MAAM;QACF,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,OAAO,IAAI,CAAC,GAAG,CACX;;oCAEwB,eAAe;aACtC,EACD,MAAM,CACT,CAAA;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC3B,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAC3B;;;oCAGwB,eAAe;aACtC,EACD,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CACrB,CAAC,CAAA;IACN,CAAC;IAED;;;OAGG;IACO,aAAa;QACnB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;CAGJ;AAhDD,wCAgDC"}
|
|
@@ -1,34 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
export declare abstract class AlterOption extends Expression {
|
|
8
|
-
column: ColumnDefinitionOptions;
|
|
9
|
-
constructor(column: ColumnDefinitionOptions);
|
|
10
|
-
abstract toSQL(): string;
|
|
11
|
-
}
|
|
12
|
-
export declare class AddColumn extends AlterOption {
|
|
13
|
-
toSQL(): string;
|
|
14
|
-
}
|
|
15
|
-
export declare class AddConstraint extends AlterOption {
|
|
16
|
-
type: Constraints;
|
|
17
|
-
constructor(column: ColumnDefinitionOptions, type: Constraints);
|
|
18
|
-
toSQL(): string;
|
|
1
|
+
import { AddColumn as BaseAddColumn, AlterOption } from '../../SQL/Alter';
|
|
2
|
+
import { ColumnDefinition } from '../ColumnDefinition';
|
|
3
|
+
export { AddConstraint, Alter, AlterOption, Constraints, DropColumn } from '../../SQL/Alter';
|
|
4
|
+
export declare class AddColumn extends BaseAddColumn {
|
|
5
|
+
protected columnDefinition: typeof ColumnDefinition;
|
|
19
6
|
}
|
|
20
7
|
export declare class ModifyColumn extends AlterOption {
|
|
21
8
|
toSQL(): string;
|
|
22
9
|
}
|
|
23
|
-
export declare class DropColumn extends Expression {
|
|
24
|
-
column: string;
|
|
25
|
-
constructor(column: string);
|
|
26
|
-
toSQL(): string;
|
|
27
|
-
}
|
|
28
|
-
export declare class Alter extends Expression {
|
|
29
|
-
table: string;
|
|
30
|
-
alterOptions: Expression[];
|
|
31
|
-
constructor(table: string, alterOptions: Expression[]);
|
|
32
|
-
toSQL(): string;
|
|
33
|
-
}
|
|
34
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5F,qBAAa,SAAU,SAAQ,aAAa;IACxC,SAAS,CAAC,gBAAgB,0BAAmB;CAChD;AAED,qBAAa,YAAa,SAAQ,WAAW;IACzC,KAAK,IAAI,MAAM;CAGlB"}
|
|
@@ -1,70 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
const ColumnDefinition_1 = require("
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
(function (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class
|
|
13
|
-
|
|
14
|
-
constructor(column) {
|
|
15
|
-
super();
|
|
16
|
-
this.column = column;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.AlterOption = AlterOption;
|
|
20
|
-
class AddColumn extends AlterOption {
|
|
21
|
-
toSQL() {
|
|
22
|
-
return `ADD ${new ColumnDefinition_1.ColumnDefinition(this.column).toSQL()}`;
|
|
23
|
-
}
|
|
3
|
+
exports.ModifyColumn = exports.AddColumn = exports.DropColumn = exports.Constraints = exports.AlterOption = exports.Alter = exports.AddConstraint = void 0;
|
|
4
|
+
const Alter_1 = require("../../SQL/Alter");
|
|
5
|
+
const ColumnDefinition_1 = require("../ColumnDefinition");
|
|
6
|
+
var Alter_2 = require("../../SQL/Alter");
|
|
7
|
+
Object.defineProperty(exports, "AddConstraint", { enumerable: true, get: function () { return Alter_2.AddConstraint; } });
|
|
8
|
+
Object.defineProperty(exports, "Alter", { enumerable: true, get: function () { return Alter_2.Alter; } });
|
|
9
|
+
Object.defineProperty(exports, "AlterOption", { enumerable: true, get: function () { return Alter_2.AlterOption; } });
|
|
10
|
+
Object.defineProperty(exports, "Constraints", { enumerable: true, get: function () { return Alter_2.Constraints; } });
|
|
11
|
+
Object.defineProperty(exports, "DropColumn", { enumerable: true, get: function () { return Alter_2.DropColumn; } });
|
|
12
|
+
class AddColumn extends Alter_1.AddColumn {
|
|
13
|
+
columnDefinition = ColumnDefinition_1.ColumnDefinition;
|
|
24
14
|
}
|
|
25
15
|
exports.AddColumn = AddColumn;
|
|
26
|
-
class
|
|
27
|
-
type;
|
|
28
|
-
constructor(column, type) {
|
|
29
|
-
super(column);
|
|
30
|
-
this.type = type;
|
|
31
|
-
}
|
|
32
|
-
toSQL() {
|
|
33
|
-
return `ADD CONSTRAINT ${this.type} (${this.column.name})`;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.AddConstraint = AddConstraint;
|
|
37
|
-
class ModifyColumn extends AlterOption {
|
|
16
|
+
class ModifyColumn extends Alter_1.AlterOption {
|
|
38
17
|
toSQL() {
|
|
39
18
|
return `MODIFY ${new ColumnDefinition_1.ColumnDefinition(this.column).toSQL()}`;
|
|
40
19
|
}
|
|
41
20
|
}
|
|
42
21
|
exports.ModifyColumn = ModifyColumn;
|
|
43
|
-
class DropColumn extends Database_1.Expression {
|
|
44
|
-
column;
|
|
45
|
-
constructor(column) {
|
|
46
|
-
super();
|
|
47
|
-
this.column = column;
|
|
48
|
-
}
|
|
49
|
-
toSQL() {
|
|
50
|
-
return `DROP COLUMN ${(0, Helpers_1.wrap)(this.column)}`;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.DropColumn = DropColumn;
|
|
54
|
-
class Alter extends Database_1.Expression {
|
|
55
|
-
table;
|
|
56
|
-
alterOptions;
|
|
57
|
-
constructor(table, alterOptions) {
|
|
58
|
-
super();
|
|
59
|
-
this.table = table;
|
|
60
|
-
this.alterOptions = alterOptions;
|
|
61
|
-
}
|
|
62
|
-
toSQL() {
|
|
63
|
-
return `
|
|
64
|
-
ALTER TABLE ${(0, Helpers_1.wrap)(this.table)}
|
|
65
|
-
${this.alterOptions.map(option => option.toSQL()).join(', \n')}
|
|
66
|
-
`;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
exports.Alter = Alter;
|
|
70
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyE;AACzE,0DAAsD;AAEtD,yCAA4F;AAAnF,sGAAA,aAAa,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,mGAAA,UAAU,OAAA;AAEnE,MAAa,SAAU,SAAQ,iBAAa;IAC9B,gBAAgB,GAAG,mCAAgB,CAAA;CAChD;AAFD,8BAEC;AAED,MAAa,YAAa,SAAQ,mBAAW;IACzC,KAAK;QACD,OAAO,UAAU,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAChE,CAAC;CACJ;AAJD,oCAIC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class ColumnDefinition {
|
|
3
|
-
|
|
4
|
-
constructor(options: ColumnDefinitionOptions);
|
|
5
|
-
toSQL(): string;
|
|
1
|
+
import { ColumnDefinition as BaseColumnDefinition } from '../SQL/ColumnDefinition';
|
|
2
|
+
export declare class ColumnDefinition extends BaseColumnDefinition {
|
|
3
|
+
autoIncrement: string;
|
|
6
4
|
}
|
|
7
5
|
//# sourceMappingURL=ColumnDefinition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAElF,qBAAa,gBAAiB,SAAQ,oBAAoB;IACtD,aAAa,SAAmB;CACnC"}
|
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ColumnDefinition = void 0;
|
|
4
|
-
const
|
|
5
|
-
class ColumnDefinition {
|
|
6
|
-
|
|
7
|
-
constructor(options) {
|
|
8
|
-
this.options = options;
|
|
9
|
-
}
|
|
10
|
-
toSQL() {
|
|
11
|
-
const sqlParts = [(0, Helpers_1.wrap)(this.options.name), this.options.type];
|
|
12
|
-
if (this.options.autoIncrement) {
|
|
13
|
-
sqlParts.push('AUTO_INCREMENT');
|
|
14
|
-
}
|
|
15
|
-
return sqlParts.join(' ');
|
|
16
|
-
}
|
|
4
|
+
const ColumnDefinition_1 = require("../SQL/ColumnDefinition");
|
|
5
|
+
class ColumnDefinition extends ColumnDefinition_1.ColumnDefinition {
|
|
6
|
+
autoIncrement = 'AUTO_INCREMENT';
|
|
17
7
|
}
|
|
18
8
|
exports.ColumnDefinition = ColumnDefinition;
|
|
19
9
|
//# sourceMappingURL=ColumnDefinition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnDefinition.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ColumnDefinition.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":";;;AAAA,8DAAkF;AAElF,MAAa,gBAAiB,SAAQ,mCAAoB;IACtD,aAAa,GAAG,gBAAgB,CAAA;CACnC;AAFD,4CAEC"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export declare class Create extends
|
|
4
|
-
|
|
5
|
-
constructor(table: string, columns?: ColumnDefinitionOptions[]);
|
|
6
|
-
toSQL(): string;
|
|
7
|
-
private getColumnsSQL;
|
|
8
|
-
private getColumnSQL;
|
|
1
|
+
import { Create as BaseCreate } from '../SQL/Create';
|
|
2
|
+
import { ColumnDefinition } from './ColumnDefinition';
|
|
3
|
+
export declare class Create extends BaseCreate {
|
|
4
|
+
protected columnDefinition: typeof ColumnDefinition;
|
|
9
5
|
}
|
|
10
6
|
//# sourceMappingURL=Create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,qBAAa,MAAO,SAAQ,UAAU;IAClC,SAAS,CAAC,gBAAgB,0BAAmB;CAChD"}
|
|
@@ -1,44 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Create = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
class Create extends
|
|
7
|
-
|
|
8
|
-
constructor(table, columns = []) {
|
|
9
|
-
super({
|
|
10
|
-
table,
|
|
11
|
-
columns: [],
|
|
12
|
-
joins: [],
|
|
13
|
-
wheres: [],
|
|
14
|
-
groups: [],
|
|
15
|
-
orders: [],
|
|
16
|
-
having: []
|
|
17
|
-
});
|
|
18
|
-
this.columns = columns;
|
|
19
|
-
}
|
|
20
|
-
toSQL() {
|
|
21
|
-
const definitions = this.getColumnsSQL(this.columns);
|
|
22
|
-
this.columns.where('primaryKey').whenNotEmpty(primaryColumns => {
|
|
23
|
-
definitions.push(`PRIMARY KEY (${primaryColumns.pluck('name').join(', ')})`);
|
|
24
|
-
});
|
|
25
|
-
return `
|
|
26
|
-
CREATE TABLE ${this.table}
|
|
27
|
-
(
|
|
28
|
-
${definitions.join(', \n')}
|
|
29
|
-
)
|
|
30
|
-
`;
|
|
31
|
-
}
|
|
32
|
-
getColumnsSQL(columns) {
|
|
33
|
-
return columns.map(this.getColumnSQL);
|
|
34
|
-
}
|
|
35
|
-
getColumnSQL(column) {
|
|
36
|
-
const sqlParts = [(0, Helpers_1.wrap)(column.name), column.type];
|
|
37
|
-
if (column.autoIncrement) {
|
|
38
|
-
sqlParts.push('AUTO_INCREMENT');
|
|
39
|
-
}
|
|
40
|
-
return sqlParts.join(' ');
|
|
41
|
-
}
|
|
4
|
+
const Create_1 = require("../SQL/Create");
|
|
5
|
+
const ColumnDefinition_1 = require("./ColumnDefinition");
|
|
6
|
+
class Create extends Create_1.Create {
|
|
7
|
+
columnDefinition = ColumnDefinition_1.ColumnDefinition;
|
|
42
8
|
}
|
|
43
9
|
exports.Create = Create;
|
|
44
10
|
//# sourceMappingURL=Create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AACpD,yDAAqD;AAErD,MAAa,MAAO,SAAQ,eAAU;IACxB,gBAAgB,GAAG,mCAAgB,CAAA;CAChD;AAFD,wBAEC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DatabaseDriver } from '../DatabaseDriver';
|
|
2
1
|
import { Connection, ConnectionConfig, OkPacket } from 'mysql';
|
|
3
2
|
import { SqlValue } from '../../Types';
|
|
3
|
+
import { DatabaseDriver } from '../DatabaseDriver';
|
|
4
4
|
import { Create } from './Create';
|
|
5
5
|
import { Select } from '../SQL/Statements/Select';
|
|
6
6
|
import { Insert } from '../SQL/Statements/Insert';
|
|
@@ -26,10 +26,7 @@ export declare class MysqlDriver extends DatabaseDriver {
|
|
|
26
26
|
get<T>(query: string, params?: SqlValue[]): Promise<T[]>;
|
|
27
27
|
first<T>(query: string, params?: SqlValue[]): Promise<T>;
|
|
28
28
|
insertOne(query: string, params?: SqlValue[]): Promise<number>;
|
|
29
|
-
|
|
30
|
-
name: string;
|
|
31
|
-
}[]>;
|
|
32
|
-
tableExists(table: string): Promise<boolean>;
|
|
29
|
+
protected currentSchema(): [string, SqlValue[]];
|
|
33
30
|
tableColumns(table: string): Promise<{
|
|
34
31
|
name: string;
|
|
35
32
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MysqlDriver.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MysqlDriver.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoB,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAYlD,qBAAa,WAAY,SAAQ,cAAc;IAC3C,UAAU,EAAE,UAAU,CAAA;IAEtB,MAAM,EAAE,cAAc,CAAmB;IAEzC,UAAU;;;;;;;MAOT;gBAEW,gBAAgB,EAAE,gBAAgB;IAUxC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAI5B,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC;IAYlE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO;IAI1C,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAI5D,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxE,SAAS,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAIzC,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;;;CAwBnC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MysqlDriver = void 0;
|
|
4
|
-
const DatabaseDriver_1 = require("../DatabaseDriver");
|
|
5
4
|
const mysql_1 = require("mysql");
|
|
5
|
+
const DatabaseDriver_1 = require("../DatabaseDriver");
|
|
6
6
|
const Create_1 = require("./Create");
|
|
7
7
|
const Select_1 = require("../SQL/Statements/Select");
|
|
8
8
|
const Insert_1 = require("../SQL/Statements/Insert");
|
|
@@ -55,18 +55,8 @@ class MysqlDriver extends DatabaseDriver_1.DatabaseDriver {
|
|
|
55
55
|
async insertOne(query, params = []) {
|
|
56
56
|
return (await this.runRaw(query, params)).insertId;
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
return this.
|
|
60
|
-
from information_schema.TABLES
|
|
61
|
-
WHERE table_schema = ?
|
|
62
|
-
`, [this.connection.config.database]);
|
|
63
|
-
}
|
|
64
|
-
tableExists(table) {
|
|
65
|
-
return this.first(`select *
|
|
66
|
-
from information_schema.tables
|
|
67
|
-
where table_name = ?
|
|
68
|
-
and table_schema = ?
|
|
69
|
-
`, [table, this.connection.config.database]);
|
|
58
|
+
currentSchema() {
|
|
59
|
+
return ['?', [this.connection.config.database]];
|
|
70
60
|
}
|
|
71
61
|
async tableColumns(table) {
|
|
72
62
|
const columnsInfo = await this.get(`select cast(IS_NULLABLE = 'YES' as unsigned) as nullable,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MysqlDriver.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"MysqlDriver.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import { ColumnField, Entity } from '../..';
|
|
2
1
|
import { Schema as BaseSchema } from '../SQL/Schema';
|
|
2
|
+
import { Create } from './Create';
|
|
3
|
+
import { ColumnDefinitionOptions } from '../SQL';
|
|
4
|
+
import { AddColumn, AddConstraint, ModifyColumn } from './Alter';
|
|
3
5
|
export declare class Schema extends BaseSchema {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
nullable: boolean;
|
|
11
|
-
};
|
|
12
|
-
create(table: string, columns: ColumnField<Entity>[]): Promise<void>;
|
|
13
|
-
protected syncTableColumns(table: string, columnsMetadata: ColumnField<Entity>[]): Promise<void>;
|
|
14
|
-
private getColumnTypeBasedOnTypescriptType;
|
|
6
|
+
protected typesMatches: Map<any, string>;
|
|
7
|
+
protected createStatement(table: string, columns: ColumnDefinitionOptions[]): Create;
|
|
8
|
+
protected addColumn(column: ColumnDefinitionOptions): AddColumn;
|
|
9
|
+
protected changeColumnType(column: ColumnDefinitionOptions): ModifyColumn;
|
|
10
|
+
protected addAutoIncrement(column: ColumnDefinitionOptions): ModifyColumn;
|
|
11
|
+
protected addPrimaryKey(column: ColumnDefinitionOptions): AddConstraint;
|
|
15
12
|
}
|
|
16
13
|
//# sourceMappingURL=Schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAe,YAAY,EAAE,MAAM,SAAS,CAAA;AAE7E,qBAAa,MAAO,SAAQ,UAAU;IAElC,SAAS,CAAC,YAAY,mBAAe;IAErC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE;IAI3E,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB;IAInD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB;IAI1D,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB;IAI1D,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,uBAAuB;CAG1D"}
|
|
@@ -1,66 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Schema = void 0;
|
|
4
|
-
const __1 = require("../..");
|
|
5
4
|
const Schema_1 = require("../SQL/Schema");
|
|
6
5
|
const Create_1 = require("./Create");
|
|
7
6
|
const _1 = require(".");
|
|
8
7
|
const Alter_1 = require("./Alter");
|
|
9
8
|
class Schema extends Schema_1.Schema {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
primaryKey: metadata.constructor === __1.PrimaryField,
|
|
14
|
-
autoIncrement: Number(metadata.constructor === __1.PrimaryField),
|
|
15
|
-
type: this.getColumnTypeBasedOnTypescriptType(metadata),
|
|
16
|
-
default: undefined,
|
|
17
|
-
nullable: true
|
|
18
|
-
};
|
|
9
|
+
typesMatches = _1.typesMatches;
|
|
10
|
+
createStatement(table, columns) {
|
|
11
|
+
return new Create_1.Create(table, columns);
|
|
19
12
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const createStatement = new Create_1.Create(table, columnsDefinitions);
|
|
23
|
-
await this.driver.run(createStatement.toSQL());
|
|
13
|
+
addColumn(column) {
|
|
14
|
+
return new Alter_1.AddColumn(column);
|
|
24
15
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const tableColumns = await this.driver.tableColumns(table);
|
|
28
|
-
let alters = [];
|
|
29
|
-
alters = alters.concat(columns
|
|
30
|
-
.whereNotIn('name', tableColumns.pluck('name'))
|
|
31
|
-
.map(column => new Alter_1.AddColumn({ ...column, autoIncrement: undefined })));
|
|
32
|
-
columns.whereIn('name', tableColumns.pluck('name'))
|
|
33
|
-
.forEach(column => {
|
|
34
|
-
const typeInDB = tableColumns.findWhere('name', column.name)?.type;
|
|
35
|
-
if (typeInDB !== column.type) {
|
|
36
|
-
alters.push(new Alter_1.ModifyColumn(column));
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
alters = alters.concat(tableColumns
|
|
40
|
-
.whereNotIn('name', columns.pluck('name'))
|
|
41
|
-
.map(tableColumn => new Alter_1.DropColumn(tableColumn.name)));
|
|
42
|
-
await this.driver.run(new Alter_1.Alter(table, alters).toSQL());
|
|
43
|
-
const additionalAlters = [];
|
|
44
|
-
columns.forEach(column => {
|
|
45
|
-
const dbInfo = tableColumns.findWhere('name', column.name);
|
|
46
|
-
if (column.primaryKey && !dbInfo?.primaryKey) {
|
|
47
|
-
additionalAlters.push(new Alter_1.AddConstraint(column, Alter_1.Constraints.PrimaryKey));
|
|
48
|
-
}
|
|
49
|
-
if (column.autoIncrement && !dbInfo?.autoIncrement) {
|
|
50
|
-
additionalAlters.push(new Alter_1.ModifyColumn(column));
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
if (!additionalAlters.empty()) {
|
|
54
|
-
await this.driver.run(new Alter_1.Alter(table, additionalAlters).toSQL());
|
|
55
|
-
}
|
|
16
|
+
changeColumnType(column) {
|
|
17
|
+
return new Alter_1.ModifyColumn(column);
|
|
56
18
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
?? _1.typesMatches.get(typePrototype)
|
|
63
|
-
?? _1.typesMatches.get(String);
|
|
19
|
+
addAutoIncrement(column) {
|
|
20
|
+
return new Alter_1.ModifyColumn(column);
|
|
21
|
+
}
|
|
22
|
+
addPrimaryKey(column) {
|
|
23
|
+
return new Alter_1.AddConstraint(column, Alter_1.Constraints.PrimaryKey);
|
|
64
24
|
}
|
|
65
25
|
}
|
|
66
26
|
exports.Schema = Schema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AACpD,qCAAiC;AACjC,wBAAgC;AAEhC,mCAA6E;AAE7E,MAAa,MAAO,SAAQ,eAAU;IAExB,YAAY,GAAG,eAAY,CAAA;IAE3B,eAAe,CAAC,KAAa,EAAE,OAAkC;QACvE,OAAO,IAAI,eAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAES,SAAS,CAAC,MAA+B;QAC/C,OAAO,IAAI,iBAAS,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAES,gBAAgB,CAAC,MAA+B;QACtD,OAAO,IAAI,oBAAY,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAES,gBAAgB,CAAC,MAA+B;QACtD,OAAO,IAAI,oBAAY,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAES,aAAa,CAAC,MAA+B;QACnD,OAAO,IAAI,qBAAa,CAAC,MAAM,EAAE,mBAAW,CAAC,UAAU,CAAC,CAAA;IAC5D,CAAC;CACJ;AAvBD,wBAuBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translates the shared SQL dialect to Postgres: backtick identifiers become double-quoted
|
|
3
|
+
* and `?` placeholders become `$1`, `$2`, ... Quoted literals and identifiers are left untouched.
|
|
4
|
+
*/
|
|
5
|
+
export declare function toPostgresSQL(sql: string): string;
|
|
6
|
+
//# sourceMappingURL=Helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Helpers.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/Helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAsBxC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toPostgresSQL = toPostgresSQL;
|
|
4
|
+
/**
|
|
5
|
+
* Translates the shared SQL dialect to Postgres: backtick identifiers become double-quoted
|
|
6
|
+
* and `?` placeholders become `$1`, `$2`, ... Quoted literals and identifiers are left untouched.
|
|
7
|
+
*/
|
|
8
|
+
function toPostgresSQL(sql) {
|
|
9
|
+
let placeholder = 0;
|
|
10
|
+
let quote;
|
|
11
|
+
let result = '';
|
|
12
|
+
for (const char of sql) {
|
|
13
|
+
if (quote) {
|
|
14
|
+
quote = char === quote ? undefined : quote;
|
|
15
|
+
result += char;
|
|
16
|
+
}
|
|
17
|
+
else if (char === '\'' || char === '"') {
|
|
18
|
+
quote = char;
|
|
19
|
+
result += char;
|
|
20
|
+
}
|
|
21
|
+
else if (char === '`') {
|
|
22
|
+
result += '"';
|
|
23
|
+
}
|
|
24
|
+
else if (char === '?') {
|
|
25
|
+
result += '$' + ++placeholder;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
result += char;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=Helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../../../Database/Drivers/Postgres/Helpers.ts"],"names":[],"mappings":";;AAIA,sCAsBC;AA1BD;;;GAGG;AACH,SAAgB,aAAa,CAAC,GAAW;IACrC,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,KAAyB,CAAA;IAC7B,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;YAC1C,MAAM,IAAI,IAAI,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACvC,KAAK,GAAG,IAAI,CAAA;YACZ,MAAM,IAAI,IAAI,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,CAAA;QACjB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,GAAG,EAAE,WAAW,CAAA;QACjC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,IAAI,CAAA;QAClB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC"}
|