typeorm 0.3.8-dev.e49d0c8 → 0.3.8-dev.eb8f0c6
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/browser/driver/postgres/PostgresQueryRunner.js +4 -4
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +13 -9
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/browser/entity-manager/EntityManager.js +1 -0
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/persistence/SubjectTopoligicalSorter.js +5 -1
- package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +6 -0
- package/browser/query-builder/SelectQueryBuilder.js +6 -3
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/util/DateUtils.d.ts +1 -1
- package/browser/util/DateUtils.js +7 -8
- package/browser/util/DateUtils.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +4 -4
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +13 -9
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -1
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/entity-manager/EntityManager.js +1 -0
- package/entity-manager/EntityManager.js.map +1 -1
- package/package.json +1 -1
- package/persistence/SubjectTopoligicalSorter.js +5 -1
- package/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +6 -0
- package/query-builder/SelectQueryBuilder.js +6 -3
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/util/DateUtils.d.ts +1 -1
- package/util/DateUtils.js +7 -8
- package/util/DateUtils.js.map +1 -1
|
@@ -263,7 +263,7 @@ export declare abstract class AbstractSqliteQueryRunner extends BaseQueryRunner
|
|
|
263
263
|
/**
|
|
264
264
|
* Builds create table sql.
|
|
265
265
|
*/
|
|
266
|
-
protected createTableSql(table: Table, createForeignKeys?: boolean): Query;
|
|
266
|
+
protected createTableSql(table: Table, createForeignKeys?: boolean, temporaryTable?: boolean): Query;
|
|
267
267
|
/**
|
|
268
268
|
* Builds drop table sql.
|
|
269
269
|
*/
|
|
@@ -995,10 +995,10 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
995
995
|
}
|
|
996
996
|
return tableColumn;
|
|
997
997
|
}));
|
|
998
|
-
// find
|
|
998
|
+
// find foreign key constraints from CREATE TABLE sql
|
|
999
999
|
let fkResult;
|
|
1000
1000
|
const fkMappings = [];
|
|
1001
|
-
const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY
|
|
1001
|
+
const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY ?\((.*?)\) REFERENCES "([^"]*)"/g;
|
|
1002
1002
|
while ((fkResult = fkRegex.exec(sql)) !== null) {
|
|
1003
1003
|
fkMappings.push({
|
|
1004
1004
|
name: fkResult[1],
|
|
@@ -1031,7 +1031,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1031
1031
|
// find unique constraints from CREATE TABLE sql
|
|
1032
1032
|
let uniqueRegexResult;
|
|
1033
1033
|
const uniqueMappings = [];
|
|
1034
|
-
const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE
|
|
1034
|
+
const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE ?\((.*?)\)/g;
|
|
1035
1035
|
while ((uniqueRegexResult = uniqueRegex.exec(sql)) !== null) {
|
|
1036
1036
|
uniqueMappings.push({
|
|
1037
1037
|
name: uniqueRegexResult[1],
|
|
@@ -1073,7 +1073,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1073
1073
|
table.uniques = (await Promise.all(tableUniquePromises));
|
|
1074
1074
|
// build checks
|
|
1075
1075
|
let result;
|
|
1076
|
-
const regexp = /CONSTRAINT "([^"]*)" CHECK (\(.*?\))([,]|[)]$)/g;
|
|
1076
|
+
const regexp = /CONSTRAINT "([^"]*)" CHECK ?(\(.*?\))([,]|[)]$)/g;
|
|
1077
1077
|
while ((result = regexp.exec(sql)) !== null) {
|
|
1078
1078
|
table.checks.push(new TableCheck({
|
|
1079
1079
|
name: result[1],
|
|
@@ -1113,7 +1113,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1113
1113
|
/**
|
|
1114
1114
|
* Builds create table sql.
|
|
1115
1115
|
*/
|
|
1116
|
-
createTableSql(table, createForeignKeys) {
|
|
1116
|
+
createTableSql(table, createForeignKeys, temporaryTable) {
|
|
1117
1117
|
const primaryColumns = table.columns.filter((column) => column.isPrimary);
|
|
1118
1118
|
const hasAutoIncrement = primaryColumns.find((column) => column.isGenerated && column.generationStrategy === "increment");
|
|
1119
1119
|
const skipPrimary = primaryColumns.length > 1;
|
|
@@ -1124,6 +1124,10 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1124
1124
|
.join(", ");
|
|
1125
1125
|
const [database] = this.splitTablePath(table.name);
|
|
1126
1126
|
let sql = `CREATE TABLE ${this.escapePath(table.name)} (${columnDefinitions}`;
|
|
1127
|
+
let [databaseNew, tableName] = this.splitTablePath(table.name);
|
|
1128
|
+
const newTableName = temporaryTable
|
|
1129
|
+
? `${databaseNew ? `${databaseNew}.` : ""}${tableName.replace(/^temporary_/, "")}`
|
|
1130
|
+
: table.name;
|
|
1127
1131
|
// need for `addColumn()` method, because it recreates table.
|
|
1128
1132
|
table.columns
|
|
1129
1133
|
.filter((column) => column.isUnique)
|
|
@@ -1141,7 +1145,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1141
1145
|
.map((unique) => {
|
|
1142
1146
|
const uniqueName = unique.name
|
|
1143
1147
|
? unique.name
|
|
1144
|
-
: this.connection.namingStrategy.uniqueConstraintName(
|
|
1148
|
+
: this.connection.namingStrategy.uniqueConstraintName(newTableName, unique.columnNames);
|
|
1145
1149
|
const columnNames = unique.columnNames
|
|
1146
1150
|
.map((columnName) => `"${columnName}"`)
|
|
1147
1151
|
.join(", ");
|
|
@@ -1155,7 +1159,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1155
1159
|
.map((check) => {
|
|
1156
1160
|
const checkName = check.name
|
|
1157
1161
|
? check.name
|
|
1158
|
-
: this.connection.namingStrategy.checkConstraintName(
|
|
1162
|
+
: this.connection.namingStrategy.checkConstraintName(newTableName, check.expression);
|
|
1159
1163
|
return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
|
|
1160
1164
|
})
|
|
1161
1165
|
.join(", ");
|
|
@@ -1176,7 +1180,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1176
1180
|
.map((columnName) => `"${columnName}"`)
|
|
1177
1181
|
.join(", ");
|
|
1178
1182
|
if (!fk.name)
|
|
1179
|
-
fk.name = this.connection.namingStrategy.foreignKeyName(
|
|
1183
|
+
fk.name = this.connection.namingStrategy.foreignKeyName(newTableName, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
|
|
1180
1184
|
const referencedColumnNames = fk.referencedColumnNames
|
|
1181
1185
|
.map((columnName) => `"${columnName}"`)
|
|
1182
1186
|
.join(", ");
|
|
@@ -1325,7 +1329,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1325
1329
|
let [, tableNameOld] = this.splitTablePath(oldTable.name);
|
|
1326
1330
|
newTable.name = tableNameNew = `${databaseNew ? `${databaseNew}.` : ""}temporary_${tableNameNew}`;
|
|
1327
1331
|
// create new table
|
|
1328
|
-
upQueries.push(this.createTableSql(newTable, true));
|
|
1332
|
+
upQueries.push(this.createTableSql(newTable, true, true));
|
|
1329
1333
|
downQueries.push(this.dropTableSql(newTable));
|
|
1330
1334
|
// migrate all data from the old table into new table
|
|
1331
1335
|
if (migrateData) {
|