@arikajs/database 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +333 -0
- package/dist/Connections/MySQLConnection.d.ts +39 -0
- package/dist/Connections/MySQLConnection.d.ts.map +1 -0
- package/dist/Connections/MySQLConnection.js +91 -0
- package/dist/Connections/MySQLConnection.js.map +1 -0
- package/dist/Connections/PostgreSQLConnection.d.ts +39 -0
- package/dist/Connections/PostgreSQLConnection.d.ts.map +1 -0
- package/dist/Connections/PostgreSQLConnection.js +85 -0
- package/dist/Connections/PostgreSQLConnection.js.map +1 -0
- package/dist/Connections/SQLiteConnection.d.ts +51 -0
- package/dist/Connections/SQLiteConnection.d.ts.map +1 -0
- package/dist/Connections/SQLiteConnection.js +111 -0
- package/dist/Connections/SQLiteConnection.js.map +1 -0
- package/dist/Contracts/Database.d.ts +131 -0
- package/dist/Contracts/Database.d.ts.map +1 -0
- package/dist/Contracts/Database.js +3 -0
- package/dist/Contracts/Database.js.map +1 -0
- package/dist/Contracts/Schema.d.ts +124 -0
- package/dist/Contracts/Schema.d.ts.map +1 -0
- package/dist/Contracts/Schema.js +3 -0
- package/dist/Contracts/Schema.js.map +1 -0
- package/dist/Database.d.ts +38 -0
- package/dist/Database.d.ts.map +1 -0
- package/dist/Database.js +55 -0
- package/dist/Database.js.map +1 -0
- package/dist/DatabaseManager.d.ts +36 -0
- package/dist/DatabaseManager.d.ts.map +1 -0
- package/dist/DatabaseManager.js +126 -0
- package/dist/DatabaseManager.js.map +1 -0
- package/dist/Migrations/Migration.d.ts +17 -0
- package/dist/Migrations/Migration.d.ts.map +1 -0
- package/dist/Migrations/Migration.js +10 -0
- package/dist/Migrations/Migration.js.map +1 -0
- package/dist/Migrations/Migrator.d.ts +51 -0
- package/dist/Migrations/Migrator.d.ts.map +1 -0
- package/dist/Migrations/Migrator.js +166 -0
- package/dist/Migrations/Migrator.js.map +1 -0
- package/dist/Model/Model.d.ts +309 -0
- package/dist/Model/Model.d.ts.map +1 -0
- package/dist/Model/Model.js +607 -0
- package/dist/Model/Model.js.map +1 -0
- package/dist/Model/Relations.d.ts +53 -0
- package/dist/Model/Relations.d.ts.map +1 -0
- package/dist/Model/Relations.js +124 -0
- package/dist/Model/Relations.js.map +1 -0
- package/dist/Model/SoftDeletes.d.ts +24 -0
- package/dist/Model/SoftDeletes.d.ts.map +1 -0
- package/dist/Model/SoftDeletes.js +95 -0
- package/dist/Model/SoftDeletes.js.map +1 -0
- package/dist/Query/QueryBuilder.d.ts +94 -0
- package/dist/Query/QueryBuilder.d.ts.map +1 -0
- package/dist/Query/QueryBuilder.js +276 -0
- package/dist/Query/QueryBuilder.js.map +1 -0
- package/dist/Schema/Grammars/Grammar.d.ts +27 -0
- package/dist/Schema/Grammars/Grammar.d.ts.map +1 -0
- package/dist/Schema/Grammars/Grammar.js +25 -0
- package/dist/Schema/Grammars/Grammar.js.map +1 -0
- package/dist/Schema/Grammars/MySQLGrammar.d.ts +13 -0
- package/dist/Schema/Grammars/MySQLGrammar.d.ts.map +1 -0
- package/dist/Schema/Grammars/MySQLGrammar.js +78 -0
- package/dist/Schema/Grammars/MySQLGrammar.js.map +1 -0
- package/dist/Schema/Grammars/PostgreSQLGrammar.d.ts +13 -0
- package/dist/Schema/Grammars/PostgreSQLGrammar.d.ts.map +1 -0
- package/dist/Schema/Grammars/PostgreSQLGrammar.js +57 -0
- package/dist/Schema/Grammars/PostgreSQLGrammar.js.map +1 -0
- package/dist/Schema/Grammars/SQLiteGrammar.d.ts +13 -0
- package/dist/Schema/Grammars/SQLiteGrammar.d.ts.map +1 -0
- package/dist/Schema/Grammars/SQLiteGrammar.js +53 -0
- package/dist/Schema/Grammars/SQLiteGrammar.js.map +1 -0
- package/dist/Schema/Schema.d.ts +120 -0
- package/dist/Schema/Schema.d.ts.map +1 -0
- package/dist/Schema/Schema.js +226 -0
- package/dist/Schema/Schema.js.map +1 -0
- package/dist/Schema/SchemaBuilder.d.ts +24 -0
- package/dist/Schema/SchemaBuilder.d.ts.map +1 -0
- package/dist/Schema/SchemaBuilder.js +49 -0
- package/dist/Schema/SchemaBuilder.js.map +1 -0
- package/dist/Seeders/SeedRunner.d.ts +22 -0
- package/dist/Seeders/SeedRunner.d.ts.map +1 -0
- package/dist/Seeders/SeedRunner.js +72 -0
- package/dist/Seeders/SeedRunner.js.map +1 -0
- package/dist/Seeders/Seeder.d.ts +11 -0
- package/dist/Seeders/Seeder.d.ts.map +1 -0
- package/dist/Seeders/Seeder.js +10 -0
- package/dist/Seeders/Seeder.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Grammar = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base grammar class for schema building
|
|
6
|
+
*/
|
|
7
|
+
class Grammar {
|
|
8
|
+
/**
|
|
9
|
+
* Get the default value SQL
|
|
10
|
+
*/
|
|
11
|
+
getDefault(column) {
|
|
12
|
+
if (column.default_ !== undefined) {
|
|
13
|
+
if (typeof column.default_ === 'string') {
|
|
14
|
+
return ` DEFAULT '${column.default_}'`;
|
|
15
|
+
}
|
|
16
|
+
if (typeof column.default_ === 'boolean') {
|
|
17
|
+
return ` DEFAULT ${column.default_ ? 1 : 0}`;
|
|
18
|
+
}
|
|
19
|
+
return ` DEFAULT ${column.default_}`;
|
|
20
|
+
}
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.Grammar = Grammar;
|
|
25
|
+
//# sourceMappingURL=Grammar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Grammar.js","sourceRoot":"","sources":["../../../src/Schema/Grammars/Grammar.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAsB,OAAO;IAqBzB;;OAEG;IACO,UAAU,CAAC,MAAwB;QACzC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACtC,OAAO,aAAa,MAAM,CAAC,QAAQ,GAAG,CAAC;YAC3C,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,YAAY,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,CAAC;YACD,OAAO,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AApCD,0BAoCC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TableBlueprint, ColumnDefinition } from '../Schema';
|
|
2
|
+
import { Grammar } from './Grammar';
|
|
3
|
+
/**
|
|
4
|
+
* MySQL grammar for schema building
|
|
5
|
+
*/
|
|
6
|
+
export declare class MySQLGrammar extends Grammar {
|
|
7
|
+
compileCreate(blueprint: TableBlueprint): string;
|
|
8
|
+
compileDrop(tableName: string): string;
|
|
9
|
+
compileDropIfExists(tableName: string): string;
|
|
10
|
+
protected compileColumn(column: ColumnDefinition): string;
|
|
11
|
+
protected getType(column: ColumnDefinition): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=MySQLGrammar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MySQLGrammar.d.ts","sourceRoot":"","sources":["../../../src/Schema/Grammars/MySQLGrammar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,qBAAa,YAAa,SAAQ,OAAO;IAC9B,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM;IAgChD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAItC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIrD,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAwBzD,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAetD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MySQLGrammar = void 0;
|
|
4
|
+
const Grammar_1 = require("./Grammar");
|
|
5
|
+
/**
|
|
6
|
+
* MySQL grammar for schema building
|
|
7
|
+
*/
|
|
8
|
+
class MySQLGrammar extends Grammar_1.Grammar {
|
|
9
|
+
compileCreate(blueprint) {
|
|
10
|
+
const columns = blueprint.getColumns().map(column => this.compileColumn(column));
|
|
11
|
+
// Add primary keys
|
|
12
|
+
const primaryKeys = blueprint.getColumns()
|
|
13
|
+
.filter(column => column.primary)
|
|
14
|
+
.map(column => column.name);
|
|
15
|
+
if (primaryKeys.length > 0) {
|
|
16
|
+
columns.push(`PRIMARY KEY (${primaryKeys.join(', ')})`);
|
|
17
|
+
}
|
|
18
|
+
// Add unique indexes
|
|
19
|
+
blueprint.getIndexes().forEach(index => {
|
|
20
|
+
if (index.unique) {
|
|
21
|
+
columns.push(`UNIQUE INDEX ${index.name || ''} (${index.columns.join(', ')})`);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
columns.push(`INDEX ${index.name || ''} (${index.columns.join(', ')})`);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
// Add foreign keys
|
|
28
|
+
blueprint.getForeignKeys().forEach(fk => {
|
|
29
|
+
let sql = `CONSTRAINT fk_${blueprint.tableName}_${fk.column} FOREIGN KEY (${fk.column}) REFERENCES ${fk.referencedTable}(${fk.referencedColumn})`;
|
|
30
|
+
if (fk.onDeleteAction)
|
|
31
|
+
sql += ` ON DELETE ${fk.onDeleteAction.toUpperCase()}`;
|
|
32
|
+
if (fk.onUpdateAction)
|
|
33
|
+
sql += ` ON UPDATE ${fk.onUpdateAction.toUpperCase()}`;
|
|
34
|
+
columns.push(sql);
|
|
35
|
+
});
|
|
36
|
+
return `CREATE TABLE ${blueprint.tableName} (\n ${columns.join(',\n ')}\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci`;
|
|
37
|
+
}
|
|
38
|
+
compileDrop(tableName) {
|
|
39
|
+
return `DROP TABLE ${tableName}`;
|
|
40
|
+
}
|
|
41
|
+
compileDropIfExists(tableName) {
|
|
42
|
+
return `DROP TABLE IF EXISTS ${tableName}`;
|
|
43
|
+
}
|
|
44
|
+
compileColumn(column) {
|
|
45
|
+
let sql = `${column.name} ${this.getType(column)}`;
|
|
46
|
+
if (column.unsigned_) {
|
|
47
|
+
sql += ' UNSIGNED';
|
|
48
|
+
}
|
|
49
|
+
if (!column.nullable_) {
|
|
50
|
+
sql += ' NOT NULL';
|
|
51
|
+
}
|
|
52
|
+
sql += this.getDefault(column);
|
|
53
|
+
if (column.autoIncrement) {
|
|
54
|
+
sql += ' AUTO_INCREMENT';
|
|
55
|
+
}
|
|
56
|
+
if (column.comment_) {
|
|
57
|
+
sql += ` COMMENT '${column.comment_}'`;
|
|
58
|
+
}
|
|
59
|
+
return sql;
|
|
60
|
+
}
|
|
61
|
+
getType(column) {
|
|
62
|
+
switch (column.type) {
|
|
63
|
+
case 'bigInteger': return 'BIGINT';
|
|
64
|
+
case 'integer': return 'INT';
|
|
65
|
+
case 'string': return `VARCHAR(${column.length || 255})`;
|
|
66
|
+
case 'boolean': return 'TINYINT(1)';
|
|
67
|
+
case 'text': return 'TEXT';
|
|
68
|
+
case 'timestamp': return 'TIMESTAMP';
|
|
69
|
+
case 'decimal': return `DECIMAL(${column.precision || 8}, ${column.scale || 2})`;
|
|
70
|
+
case 'date': return 'DATE';
|
|
71
|
+
case 'datetime': return 'DATETIME';
|
|
72
|
+
case 'json': return 'JSON';
|
|
73
|
+
default: return 'VARCHAR(255)';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.MySQLGrammar = MySQLGrammar;
|
|
78
|
+
//# sourceMappingURL=MySQLGrammar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MySQLGrammar.js","sourceRoot":"","sources":["../../../src/Schema/Grammars/MySQLGrammar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TableBlueprint, ColumnDefinition } from '../Schema';
|
|
2
|
+
import { Grammar } from './Grammar';
|
|
3
|
+
/**
|
|
4
|
+
* PostgreSQL grammar for schema building
|
|
5
|
+
*/
|
|
6
|
+
export declare class PostgreSQLGrammar extends Grammar {
|
|
7
|
+
compileCreate(blueprint: TableBlueprint): string;
|
|
8
|
+
compileDrop(tableName: string): string;
|
|
9
|
+
compileDropIfExists(tableName: string): string;
|
|
10
|
+
protected compileColumn(column: ColumnDefinition): string;
|
|
11
|
+
protected getType(column: ColumnDefinition): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=PostgreSQLGrammar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgreSQLGrammar.d.ts","sourceRoot":"","sources":["../../../src/Schema/Grammars/PostgreSQLGrammar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IACnC,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM;IAehD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAItC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIrD,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAoBzD,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAetD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostgreSQLGrammar = void 0;
|
|
4
|
+
const Grammar_1 = require("./Grammar");
|
|
5
|
+
/**
|
|
6
|
+
* PostgreSQL grammar for schema building
|
|
7
|
+
*/
|
|
8
|
+
class PostgreSQLGrammar extends Grammar_1.Grammar {
|
|
9
|
+
compileCreate(blueprint) {
|
|
10
|
+
const columns = blueprint.getColumns().map(column => this.compileColumn(column));
|
|
11
|
+
// Add primary keys
|
|
12
|
+
const primaryKeys = blueprint.getColumns()
|
|
13
|
+
.filter(column => column.primary)
|
|
14
|
+
.map(column => column.name);
|
|
15
|
+
if (primaryKeys.length > 0) {
|
|
16
|
+
columns.push(`PRIMARY KEY (${primaryKeys.join(', ')})`);
|
|
17
|
+
}
|
|
18
|
+
return `CREATE TABLE ${blueprint.tableName} (\n ${columns.join(',\n ')}\n)`;
|
|
19
|
+
}
|
|
20
|
+
compileDrop(tableName) {
|
|
21
|
+
return `DROP TABLE ${tableName}`;
|
|
22
|
+
}
|
|
23
|
+
compileDropIfExists(tableName) {
|
|
24
|
+
return `DROP TABLE IF EXISTS ${tableName}`;
|
|
25
|
+
}
|
|
26
|
+
compileColumn(column) {
|
|
27
|
+
if (column.autoIncrement) {
|
|
28
|
+
return `${column.name} ${column.type === 'bigInteger' ? 'BIGSERIAL' : 'SERIAL'} PRIMARY KEY`;
|
|
29
|
+
}
|
|
30
|
+
let sql = `${column.name} ${this.getType(column)}`;
|
|
31
|
+
if (!column.nullable_) {
|
|
32
|
+
sql += ' NOT NULL';
|
|
33
|
+
}
|
|
34
|
+
sql += this.getDefault(column);
|
|
35
|
+
if (column.unique_) {
|
|
36
|
+
sql += ' UNIQUE';
|
|
37
|
+
}
|
|
38
|
+
return sql;
|
|
39
|
+
}
|
|
40
|
+
getType(column) {
|
|
41
|
+
switch (column.type) {
|
|
42
|
+
case 'bigInteger': return 'BIGINT';
|
|
43
|
+
case 'integer': return 'INTEGER';
|
|
44
|
+
case 'string': return `VARCHAR(${column.length || 255})`;
|
|
45
|
+
case 'boolean': return 'BOOLEAN';
|
|
46
|
+
case 'text': return 'TEXT';
|
|
47
|
+
case 'timestamp': return 'TIMESTAMP';
|
|
48
|
+
case 'decimal': return `DECIMAL(${column.precision || 8}, ${column.scale || 2})`;
|
|
49
|
+
case 'date': return 'DATE';
|
|
50
|
+
case 'datetime': return 'TIMESTAMP';
|
|
51
|
+
case 'json': return 'JSONB';
|
|
52
|
+
default: return 'VARCHAR(255)';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.PostgreSQLGrammar = PostgreSQLGrammar;
|
|
57
|
+
//# sourceMappingURL=PostgreSQLGrammar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgreSQLGrammar.js","sourceRoot":"","sources":["../../../src/Schema/Grammars/PostgreSQLGrammar.ts"],"names":[],"mappings":";;;AAEA,uCAAoC;AAEpC;;GAEG;AACH,MAAa,iBAAkB,SAAQ,iBAAO;IACnC,aAAa,CAAC,SAAyB;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjF,mBAAmB;QACnB,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE;aACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;aAChC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,gBAAgB,SAAS,CAAC,SAAS,SAAS,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAClF,CAAC;IAEM,WAAW,CAAC,SAAiB;QAChC,OAAO,cAAc,SAAS,EAAE,CAAC;IACrC,CAAC;IAEM,mBAAmB,CAAC,SAAiB;QACxC,OAAO,wBAAwB,SAAS,EAAE,CAAC;IAC/C,CAAC;IAES,aAAa,CAAC,MAAwB;QAC5C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,cAAc,CAAC;QACjG,CAAC;QAED,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACpB,GAAG,IAAI,WAAW,CAAC;QACvB,CAAC;QAED,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,IAAI,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAES,OAAO,CAAC,MAAwB;QACtC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,YAAY,CAAC,CAAC,OAAO,QAAQ,CAAC;YACnC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,QAAQ,CAAC,CAAC,OAAO,WAAW,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC;YACzD,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;YACrC,KAAK,SAAS,CAAC,CAAC,OAAO,WAAW,MAAM,CAAC,SAAS,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC;YACjF,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,KAAK,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC;YACpC,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;YAC5B,OAAO,CAAC,CAAC,OAAO,cAAc,CAAC;QACnC,CAAC;IACL,CAAC;CACJ;AA3DD,8CA2DC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TableBlueprint, ColumnDefinition } from '../Schema';
|
|
2
|
+
import { Grammar } from './Grammar';
|
|
3
|
+
/**
|
|
4
|
+
* SQLite grammar for schema building
|
|
5
|
+
*/
|
|
6
|
+
export declare class SQLiteGrammar extends Grammar {
|
|
7
|
+
compileCreate(blueprint: TableBlueprint): string;
|
|
8
|
+
compileDrop(tableName: string): string;
|
|
9
|
+
compileDropIfExists(tableName: string): string;
|
|
10
|
+
protected compileColumn(column: ColumnDefinition): string;
|
|
11
|
+
protected getType(column: ColumnDefinition): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=SQLiteGrammar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLiteGrammar.d.ts","sourceRoot":"","sources":["../../../src/Schema/Grammars/SQLiteGrammar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,qBAAa,aAAc,SAAQ,OAAO;IAC/B,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM;IAMhD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAItC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIrD,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAuBzD,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAetD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLiteGrammar = void 0;
|
|
4
|
+
const Grammar_1 = require("./Grammar");
|
|
5
|
+
/**
|
|
6
|
+
* SQLite grammar for schema building
|
|
7
|
+
*/
|
|
8
|
+
class SQLiteGrammar extends Grammar_1.Grammar {
|
|
9
|
+
compileCreate(blueprint) {
|
|
10
|
+
const columns = blueprint.getColumns().map(column => this.compileColumn(column));
|
|
11
|
+
return `CREATE TABLE ${blueprint.tableName} (\n ${columns.join(',\n ')}\n)`;
|
|
12
|
+
}
|
|
13
|
+
compileDrop(tableName) {
|
|
14
|
+
return `DROP TABLE ${tableName}`;
|
|
15
|
+
}
|
|
16
|
+
compileDropIfExists(tableName) {
|
|
17
|
+
return `DROP TABLE IF EXISTS ${tableName}`;
|
|
18
|
+
}
|
|
19
|
+
compileColumn(column) {
|
|
20
|
+
let sql = `${column.name} ${this.getType(column)}`;
|
|
21
|
+
if (column.primary) {
|
|
22
|
+
sql += ' PRIMARY KEY';
|
|
23
|
+
if (column.autoIncrement) {
|
|
24
|
+
sql += ' AUTOINCREMENT';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (!column.nullable_) {
|
|
28
|
+
sql += ' NOT NULL';
|
|
29
|
+
}
|
|
30
|
+
if (column.unique_) {
|
|
31
|
+
sql += ' UNIQUE';
|
|
32
|
+
}
|
|
33
|
+
sql += this.getDefault(column);
|
|
34
|
+
return sql;
|
|
35
|
+
}
|
|
36
|
+
getType(column) {
|
|
37
|
+
switch (column.type) {
|
|
38
|
+
case 'bigInteger': return 'INTEGER';
|
|
39
|
+
case 'integer': return 'INTEGER';
|
|
40
|
+
case 'string': return 'TEXT';
|
|
41
|
+
case 'boolean': return 'INTEGER';
|
|
42
|
+
case 'text': return 'TEXT';
|
|
43
|
+
case 'timestamp': return 'DATETIME';
|
|
44
|
+
case 'decimal': return 'NUMERIC';
|
|
45
|
+
case 'date': return 'DATE';
|
|
46
|
+
case 'datetime': return 'DATETIME';
|
|
47
|
+
case 'json': return 'TEXT';
|
|
48
|
+
default: return 'TEXT';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.SQLiteGrammar = SQLiteGrammar;
|
|
53
|
+
//# sourceMappingURL=SQLiteGrammar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLiteGrammar.js","sourceRoot":"","sources":["../../../src/Schema/Grammars/SQLiteGrammar.ts"],"names":[],"mappings":";;;AAEA,uCAAoC;AAEpC;;GAEG;AACH,MAAa,aAAc,SAAQ,iBAAO;IAC/B,aAAa,CAAC,SAAyB;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjF,OAAO,gBAAgB,SAAS,CAAC,SAAS,SAAS,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAClF,CAAC;IAEM,WAAW,CAAC,SAAiB;QAChC,OAAO,cAAc,SAAS,EAAE,CAAC;IACrC,CAAC;IAEM,mBAAmB,CAAC,SAAiB;QACxC,OAAO,wBAAwB,SAAS,EAAE,CAAC;IAC/C,CAAC;IAES,aAAa,CAAC,MAAwB;QAC5C,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAEnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,IAAI,cAAc,CAAC;YACtB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACvB,GAAG,IAAI,gBAAgB,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACpB,GAAG,IAAI,WAAW,CAAC;QACvB,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,IAAI,SAAS,CAAC;QACrB,CAAC;QAED,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,GAAG,CAAC;IACf,CAAC;IAES,OAAO,CAAC,MAAwB;QACtC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,YAAY,CAAC,CAAC,OAAO,SAAS,CAAC;YACpC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC;YAC7B,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,KAAK,WAAW,CAAC,CAAC,OAAO,UAAU,CAAC;YACpC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;YACnC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,CAAC;IACL,CAAC;CACJ;AArDD,sCAqDC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Blueprint, ColumnDefinition as ColumnDefinitionInterface, ForeignKeyDefinition as ForeignKeyDefinitionInterface, SchemaCallback } from '../Contracts/Schema';
|
|
2
|
+
/**
|
|
3
|
+
* Column definition implementation
|
|
4
|
+
*/
|
|
5
|
+
export declare class ColumnDefinition implements ColumnDefinitionInterface {
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
length?: number;
|
|
9
|
+
precision?: number;
|
|
10
|
+
scale?: number;
|
|
11
|
+
nullable_?: boolean;
|
|
12
|
+
default_?: any;
|
|
13
|
+
unique_?: boolean;
|
|
14
|
+
primary?: boolean;
|
|
15
|
+
autoIncrement?: boolean;
|
|
16
|
+
unsigned_?: boolean;
|
|
17
|
+
comment_?: string;
|
|
18
|
+
constructor(name: string, type: string);
|
|
19
|
+
nullable(): this;
|
|
20
|
+
default(value: any): this;
|
|
21
|
+
unique(): this;
|
|
22
|
+
unsigned(): this;
|
|
23
|
+
comment(comment: string): this;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Foreign key definition implementation
|
|
27
|
+
*/
|
|
28
|
+
export declare class ForeignKeyDefinition implements ForeignKeyDefinitionInterface {
|
|
29
|
+
column: string;
|
|
30
|
+
referencedColumn?: string;
|
|
31
|
+
referencedTable?: string;
|
|
32
|
+
onDeleteAction?: string;
|
|
33
|
+
onUpdateAction?: string;
|
|
34
|
+
constructor(column: string);
|
|
35
|
+
references(column: string): this;
|
|
36
|
+
on(table: string): this;
|
|
37
|
+
onDelete(action: 'cascade' | 'set null' | 'restrict' | 'no action'): this;
|
|
38
|
+
onUpdate(action: 'cascade' | 'set null' | 'restrict' | 'no action'): this;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Table blueprint implementation
|
|
42
|
+
*/
|
|
43
|
+
export declare class TableBlueprint implements Blueprint {
|
|
44
|
+
tableName: string;
|
|
45
|
+
private columns;
|
|
46
|
+
private foreignKeys;
|
|
47
|
+
private indexes;
|
|
48
|
+
private dropColumns;
|
|
49
|
+
private dropIndexes;
|
|
50
|
+
constructor(tableName: string);
|
|
51
|
+
id(name?: string): ColumnDefinition;
|
|
52
|
+
string(name: string, length?: number): ColumnDefinition;
|
|
53
|
+
integer(name: string): ColumnDefinition;
|
|
54
|
+
bigInteger(name: string): ColumnDefinition;
|
|
55
|
+
boolean(name: string): ColumnDefinition;
|
|
56
|
+
text(name: string): ColumnDefinition;
|
|
57
|
+
timestamp(name: string): ColumnDefinition;
|
|
58
|
+
timestamps(): void;
|
|
59
|
+
decimal(name: string, precision?: number, scale?: number): ColumnDefinition;
|
|
60
|
+
date(name: string): ColumnDefinition;
|
|
61
|
+
datetime(name: string): ColumnDefinition;
|
|
62
|
+
json(name: string): ColumnDefinition;
|
|
63
|
+
foreign(column: string): ForeignKeyDefinition;
|
|
64
|
+
index(columns: string | string[], name?: string): void;
|
|
65
|
+
unique(columns: string | string[], name?: string): void;
|
|
66
|
+
dropColumn(name: string): void;
|
|
67
|
+
dropIndex(name: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Get all columns
|
|
70
|
+
*/
|
|
71
|
+
getColumns(): ColumnDefinition[];
|
|
72
|
+
/**
|
|
73
|
+
* Get all foreign keys
|
|
74
|
+
*/
|
|
75
|
+
getForeignKeys(): ForeignKeyDefinition[];
|
|
76
|
+
/**
|
|
77
|
+
* Get all indexes
|
|
78
|
+
*/
|
|
79
|
+
getIndexes(): Array<{
|
|
80
|
+
columns: string[];
|
|
81
|
+
name?: string;
|
|
82
|
+
unique: boolean;
|
|
83
|
+
}>;
|
|
84
|
+
/**
|
|
85
|
+
* Get columns to drop
|
|
86
|
+
*/
|
|
87
|
+
getDropColumns(): string[];
|
|
88
|
+
/**
|
|
89
|
+
* Get indexes to drop
|
|
90
|
+
*/
|
|
91
|
+
getDropIndexes(): string[];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Schema builder
|
|
95
|
+
*/
|
|
96
|
+
export declare class Schema {
|
|
97
|
+
/**
|
|
98
|
+
* Create a new table
|
|
99
|
+
*/
|
|
100
|
+
static create(tableName: string, callback: SchemaCallback): TableBlueprint;
|
|
101
|
+
/**
|
|
102
|
+
* Modify an existing table
|
|
103
|
+
*/
|
|
104
|
+
static table(tableName: string, callback: SchemaCallback): TableBlueprint;
|
|
105
|
+
/**
|
|
106
|
+
* Drop a table
|
|
107
|
+
*/
|
|
108
|
+
static drop(tableName: string): {
|
|
109
|
+
tableName: string;
|
|
110
|
+
action: 'drop';
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Drop a table if it exists
|
|
114
|
+
*/
|
|
115
|
+
static dropIfExists(tableName: string): {
|
|
116
|
+
tableName: string;
|
|
117
|
+
action: 'dropIfExists';
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=Schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema/Schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Schema = exports.TableBlueprint = exports.ForeignKeyDefinition = exports.ColumnDefinition = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Column definition implementation
|
|
6
|
+
*/
|
|
7
|
+
class ColumnDefinition {
|
|
8
|
+
constructor(name, type) {
|
|
9
|
+
this.nullable_ = false;
|
|
10
|
+
this.unique_ = false;
|
|
11
|
+
this.primary = false;
|
|
12
|
+
this.autoIncrement = false;
|
|
13
|
+
this.unsigned_ = false;
|
|
14
|
+
this.name = name;
|
|
15
|
+
this.type = type;
|
|
16
|
+
}
|
|
17
|
+
nullable() {
|
|
18
|
+
this.nullable_ = true;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
default(value) {
|
|
22
|
+
this.default_ = value;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
unique() {
|
|
26
|
+
this.unique_ = true;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
unsigned() {
|
|
30
|
+
this.unsigned_ = true;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
comment(comment) {
|
|
34
|
+
this.comment_ = comment;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ColumnDefinition = ColumnDefinition;
|
|
39
|
+
/**
|
|
40
|
+
* Foreign key definition implementation
|
|
41
|
+
*/
|
|
42
|
+
class ForeignKeyDefinition {
|
|
43
|
+
constructor(column) {
|
|
44
|
+
this.column = column;
|
|
45
|
+
}
|
|
46
|
+
references(column) {
|
|
47
|
+
this.referencedColumn = column;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
on(table) {
|
|
51
|
+
this.referencedTable = table;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
onDelete(action) {
|
|
55
|
+
this.onDeleteAction = action;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
onUpdate(action) {
|
|
59
|
+
this.onUpdateAction = action;
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.ForeignKeyDefinition = ForeignKeyDefinition;
|
|
64
|
+
/**
|
|
65
|
+
* Table blueprint implementation
|
|
66
|
+
*/
|
|
67
|
+
class TableBlueprint {
|
|
68
|
+
constructor(tableName) {
|
|
69
|
+
this.tableName = tableName;
|
|
70
|
+
this.columns = [];
|
|
71
|
+
this.foreignKeys = [];
|
|
72
|
+
this.indexes = [];
|
|
73
|
+
this.dropColumns = [];
|
|
74
|
+
this.dropIndexes = [];
|
|
75
|
+
}
|
|
76
|
+
id(name = 'id') {
|
|
77
|
+
const column = new ColumnDefinition(name, 'bigInteger');
|
|
78
|
+
column.primary = true;
|
|
79
|
+
column.autoIncrement = true;
|
|
80
|
+
column.unsigned_ = true;
|
|
81
|
+
this.columns.push(column);
|
|
82
|
+
return column;
|
|
83
|
+
}
|
|
84
|
+
string(name, length = 255) {
|
|
85
|
+
const column = new ColumnDefinition(name, 'string');
|
|
86
|
+
column.length = length;
|
|
87
|
+
this.columns.push(column);
|
|
88
|
+
return column;
|
|
89
|
+
}
|
|
90
|
+
integer(name) {
|
|
91
|
+
const column = new ColumnDefinition(name, 'integer');
|
|
92
|
+
this.columns.push(column);
|
|
93
|
+
return column;
|
|
94
|
+
}
|
|
95
|
+
bigInteger(name) {
|
|
96
|
+
const column = new ColumnDefinition(name, 'bigInteger');
|
|
97
|
+
this.columns.push(column);
|
|
98
|
+
return column;
|
|
99
|
+
}
|
|
100
|
+
boolean(name) {
|
|
101
|
+
const column = new ColumnDefinition(name, 'boolean');
|
|
102
|
+
this.columns.push(column);
|
|
103
|
+
return column;
|
|
104
|
+
}
|
|
105
|
+
text(name) {
|
|
106
|
+
const column = new ColumnDefinition(name, 'text');
|
|
107
|
+
this.columns.push(column);
|
|
108
|
+
return column;
|
|
109
|
+
}
|
|
110
|
+
timestamp(name) {
|
|
111
|
+
const column = new ColumnDefinition(name, 'timestamp');
|
|
112
|
+
this.columns.push(column);
|
|
113
|
+
return column;
|
|
114
|
+
}
|
|
115
|
+
timestamps() {
|
|
116
|
+
this.timestamp('created_at').nullable();
|
|
117
|
+
this.timestamp('updated_at').nullable();
|
|
118
|
+
}
|
|
119
|
+
decimal(name, precision = 8, scale = 2) {
|
|
120
|
+
const column = new ColumnDefinition(name, 'decimal');
|
|
121
|
+
column.precision = precision;
|
|
122
|
+
column.scale = scale;
|
|
123
|
+
this.columns.push(column);
|
|
124
|
+
return column;
|
|
125
|
+
}
|
|
126
|
+
date(name) {
|
|
127
|
+
const column = new ColumnDefinition(name, 'date');
|
|
128
|
+
this.columns.push(column);
|
|
129
|
+
return column;
|
|
130
|
+
}
|
|
131
|
+
datetime(name) {
|
|
132
|
+
const column = new ColumnDefinition(name, 'datetime');
|
|
133
|
+
this.columns.push(column);
|
|
134
|
+
return column;
|
|
135
|
+
}
|
|
136
|
+
json(name) {
|
|
137
|
+
const column = new ColumnDefinition(name, 'json');
|
|
138
|
+
this.columns.push(column);
|
|
139
|
+
return column;
|
|
140
|
+
}
|
|
141
|
+
foreign(column) {
|
|
142
|
+
const foreignKey = new ForeignKeyDefinition(column);
|
|
143
|
+
this.foreignKeys.push(foreignKey);
|
|
144
|
+
return foreignKey;
|
|
145
|
+
}
|
|
146
|
+
index(columns, name) {
|
|
147
|
+
const columnArray = Array.isArray(columns) ? columns : [columns];
|
|
148
|
+
this.indexes.push({ columns: columnArray, name, unique: false });
|
|
149
|
+
}
|
|
150
|
+
unique(columns, name) {
|
|
151
|
+
const columnArray = Array.isArray(columns) ? columns : [columns];
|
|
152
|
+
this.indexes.push({ columns: columnArray, name, unique: true });
|
|
153
|
+
}
|
|
154
|
+
dropColumn(name) {
|
|
155
|
+
this.dropColumns.push(name);
|
|
156
|
+
}
|
|
157
|
+
dropIndex(name) {
|
|
158
|
+
this.dropIndexes.push(name);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get all columns
|
|
162
|
+
*/
|
|
163
|
+
getColumns() {
|
|
164
|
+
return this.columns;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get all foreign keys
|
|
168
|
+
*/
|
|
169
|
+
getForeignKeys() {
|
|
170
|
+
return this.foreignKeys;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get all indexes
|
|
174
|
+
*/
|
|
175
|
+
getIndexes() {
|
|
176
|
+
return this.indexes;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get columns to drop
|
|
180
|
+
*/
|
|
181
|
+
getDropColumns() {
|
|
182
|
+
return this.dropColumns;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get indexes to drop
|
|
186
|
+
*/
|
|
187
|
+
getDropIndexes() {
|
|
188
|
+
return this.dropIndexes;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.TableBlueprint = TableBlueprint;
|
|
192
|
+
/**
|
|
193
|
+
* Schema builder
|
|
194
|
+
*/
|
|
195
|
+
class Schema {
|
|
196
|
+
/**
|
|
197
|
+
* Create a new table
|
|
198
|
+
*/
|
|
199
|
+
static create(tableName, callback) {
|
|
200
|
+
const blueprint = new TableBlueprint(tableName);
|
|
201
|
+
callback(blueprint);
|
|
202
|
+
return blueprint;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Modify an existing table
|
|
206
|
+
*/
|
|
207
|
+
static table(tableName, callback) {
|
|
208
|
+
const blueprint = new TableBlueprint(tableName);
|
|
209
|
+
callback(blueprint);
|
|
210
|
+
return blueprint;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Drop a table
|
|
214
|
+
*/
|
|
215
|
+
static drop(tableName) {
|
|
216
|
+
return { tableName, action: 'drop' };
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Drop a table if it exists
|
|
220
|
+
*/
|
|
221
|
+
static dropIfExists(tableName) {
|
|
222
|
+
return { tableName, action: 'dropIfExists' };
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
exports.Schema = Schema;
|
|
226
|
+
//# sourceMappingURL=Schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/Schema/Schema.ts"],"names":[],"mappings":"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"}
|