typeorm 0.3.8-dev.bb33cd0 → 0.3.8-dev.dadb658

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