typeorm 0.3.8-dev.5ebc626 → 0.3.8-dev.8dcd61e

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 (71) hide show
  1. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +4 -1
  2. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  3. package/browser/driver/cockroachdb/CockroachQueryRunner.js +4 -1
  4. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  5. package/browser/driver/mysql/MysqlQueryRunner.js +5 -2
  6. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  7. package/browser/driver/oracle/OracleQueryRunner.js +4 -1
  8. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  9. package/browser/driver/postgres/PostgresQueryRunner.js +4 -1
  10. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  11. package/browser/driver/sap/SapQueryRunner.js +4 -1
  12. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  13. package/browser/driver/spanner/SpannerQueryRunner.js +4 -1
  14. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  15. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  16. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +17 -10
  17. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  18. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +1 -1
  19. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  20. package/browser/driver/sqlserver/SqlServerQueryRunner.js +4 -1
  21. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  22. package/browser/entity-manager/MongoEntityManager.d.ts +1 -1
  23. package/browser/entity-manager/MongoEntityManager.js +17 -10
  24. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  25. package/browser/persistence/SubjectTopoligicalSorter.js +5 -1
  26. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  27. package/browser/query-builder/SelectQueryBuilder.d.ts +6 -0
  28. package/browser/query-builder/SelectQueryBuilder.js +6 -3
  29. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  30. package/browser/query-runner/BaseQueryRunner.d.ts +5 -0
  31. package/browser/query-runner/BaseQueryRunner.js +7 -0
  32. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  33. package/browser/util/DateUtils.d.ts +1 -1
  34. package/browser/util/DateUtils.js +7 -8
  35. package/browser/util/DateUtils.js.map +1 -1
  36. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +4 -1
  37. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  38. package/driver/cockroachdb/CockroachQueryRunner.js +4 -1
  39. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  40. package/driver/mysql/MysqlQueryRunner.js +5 -2
  41. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  42. package/driver/oracle/OracleQueryRunner.js +4 -1
  43. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  44. package/driver/postgres/PostgresQueryRunner.js +4 -1
  45. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  46. package/driver/sap/SapQueryRunner.js +4 -1
  47. package/driver/sap/SapQueryRunner.js.map +1 -1
  48. package/driver/spanner/SpannerQueryRunner.js +4 -1
  49. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  50. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  51. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +17 -10
  52. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  53. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +1 -1
  54. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  55. package/driver/sqlserver/SqlServerQueryRunner.js +4 -1
  56. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  57. package/entity-manager/MongoEntityManager.d.ts +1 -1
  58. package/entity-manager/MongoEntityManager.js +17 -10
  59. package/entity-manager/MongoEntityManager.js.map +1 -1
  60. package/package.json +1 -1
  61. package/persistence/SubjectTopoligicalSorter.js +5 -1
  62. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  63. package/query-builder/SelectQueryBuilder.d.ts +6 -0
  64. package/query-builder/SelectQueryBuilder.js +6 -3
  65. package/query-builder/SelectQueryBuilder.js.map +1 -1
  66. package/query-runner/BaseQueryRunner.d.ts +5 -0
  67. package/query-runner/BaseQueryRunner.js +7 -0
  68. package/query-runner/BaseQueryRunner.js.map +1 -1
  69. package/util/DateUtils.d.ts +1 -1
  70. package/util/DateUtils.js +7 -8
  71. 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
  */
@@ -719,7 +719,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
719
719
  : await this.getCachedTable(tableOrName);
720
720
  // new index may be passed without name. In this case we generate index name manually.
721
721
  if (!index.name)
722
- index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
722
+ index.name = this.generateIndexName(table, index);
723
723
  const up = this.createIndexSql(table, index);
724
724
  const down = this.dropIndexSql(index);
725
725
  await this.executeQueries(up, down);
@@ -744,6 +744,9 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
744
744
  : table.indices.find((i) => i.name === indexOrName);
745
745
  if (!index)
746
746
  throw new TypeORMError(`Supplied index ${indexOrName} was not found in table ${table.name}`);
747
+ // old index may be passed without name. In this case we generate index name manually.
748
+ if (!index.name)
749
+ index.name = this.generateIndexName(table, index);
747
750
  const up = this.dropIndexSql(index);
748
751
  const down = this.createIndexSql(table, index);
749
752
  await this.executeQueries(up, down);
@@ -992,10 +995,10 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
992
995
  }
993
996
  return tableColumn;
994
997
  }));
995
- // find unique constraints from CREATE TABLE sql
998
+ // find foreign key constraints from CREATE TABLE sql
996
999
  let fkResult;
997
1000
  const fkMappings = [];
998
- const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY \((.*?)\) REFERENCES "([^"]*)" /g;
1001
+ const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY ?\((.*?)\) REFERENCES "([^"]*)"/g;
999
1002
  while ((fkResult = fkRegex.exec(sql)) !== null) {
1000
1003
  fkMappings.push({
1001
1004
  name: fkResult[1],
@@ -1028,7 +1031,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
1028
1031
  // find unique constraints from CREATE TABLE sql
1029
1032
  let uniqueRegexResult;
1030
1033
  const uniqueMappings = [];
1031
- const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE \((.*?)\)/g;
1034
+ const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE ?\((.*?)\)/g;
1032
1035
  while ((uniqueRegexResult = uniqueRegex.exec(sql)) !== null) {
1033
1036
  uniqueMappings.push({
1034
1037
  name: uniqueRegexResult[1],
@@ -1070,7 +1073,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
1070
1073
  table.uniques = (await Promise.all(tableUniquePromises));
1071
1074
  // build checks
1072
1075
  let result;
1073
- const regexp = /CONSTRAINT "([^"]*)" CHECK (\(.*?\))([,]|[)]$)/g;
1076
+ const regexp = /CONSTRAINT "([^"]*)" CHECK ?(\(.*?\))([,]|[)]$)/g;
1074
1077
  while ((result = regexp.exec(sql)) !== null) {
1075
1078
  table.checks.push(new TableCheck({
1076
1079
  name: result[1],
@@ -1110,7 +1113,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
1110
1113
  /**
1111
1114
  * Builds create table sql.
1112
1115
  */
1113
- createTableSql(table, createForeignKeys) {
1116
+ createTableSql(table, createForeignKeys, temporaryTable) {
1114
1117
  const primaryColumns = table.columns.filter((column) => column.isPrimary);
1115
1118
  const hasAutoIncrement = primaryColumns.find((column) => column.isGenerated && column.generationStrategy === "increment");
1116
1119
  const skipPrimary = primaryColumns.length > 1;
@@ -1121,6 +1124,10 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
1121
1124
  .join(", ");
1122
1125
  const [database] = this.splitTablePath(table.name);
1123
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;
1124
1131
  // need for `addColumn()` method, because it recreates table.
1125
1132
  table.columns
1126
1133
  .filter((column) => column.isUnique)
@@ -1138,7 +1145,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
1138
1145
  .map((unique) => {
1139
1146
  const uniqueName = unique.name
1140
1147
  ? unique.name
1141
- : this.connection.namingStrategy.uniqueConstraintName(table, unique.columnNames);
1148
+ : this.connection.namingStrategy.uniqueConstraintName(newTableName, unique.columnNames);
1142
1149
  const columnNames = unique.columnNames
1143
1150
  .map((columnName) => `"${columnName}"`)
1144
1151
  .join(", ");
@@ -1152,7 +1159,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
1152
1159
  .map((check) => {
1153
1160
  const checkName = check.name
1154
1161
  ? check.name
1155
- : this.connection.namingStrategy.checkConstraintName(table, check.expression);
1162
+ : this.connection.namingStrategy.checkConstraintName(newTableName, check.expression);
1156
1163
  return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
1157
1164
  })
1158
1165
  .join(", ");
@@ -1173,7 +1180,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
1173
1180
  .map((columnName) => `"${columnName}"`)
1174
1181
  .join(", ");
1175
1182
  if (!fk.name)
1176
- fk.name = this.connection.namingStrategy.foreignKeyName(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
1183
+ fk.name = this.connection.namingStrategy.foreignKeyName(newTableName, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
1177
1184
  const referencedColumnNames = fk.referencedColumnNames
1178
1185
  .map((columnName) => `"${columnName}"`)
1179
1186
  .join(", ");
@@ -1322,7 +1329,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
1322
1329
  let [, tableNameOld] = this.splitTablePath(oldTable.name);
1323
1330
  newTable.name = tableNameNew = `${databaseNew ? `${databaseNew}.` : ""}temporary_${tableNameNew}`;
1324
1331
  // create new table
1325
- upQueries.push(this.createTableSql(newTable, true));
1332
+ upQueries.push(this.createTableSql(newTable, true, true));
1326
1333
  downQueries.push(this.dropTableSql(newTable));
1327
1334
  // migrate all data from the old table into new table
1328
1335
  if (migrateData) {