typeorm 0.3.11-dev.fc3b4f8 → 0.3.11
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/cli-ts-node-commonjs.js +0 -0
- package/browser/cli-ts-node-esm.js +0 -0
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.d.ts +6 -0
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableOptions.d.ts +6 -0
- package/browser/decorator/options/JoinTableOptions.js.map +1 -1
- package/browser/decorator/relations/JoinTable.js +1 -0
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/driver/Driver.d.ts +4 -0
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/cordova/CordovaDriver.d.ts +1 -0
- package/browser/driver/cordova/CordovaDriver.js +1 -0
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +1 -0
- package/browser/driver/oracle/OracleDriver.js +1 -0
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.d.ts +16 -0
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +11 -1
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +17 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +99 -1
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDriver.d.ts +1 -0
- package/browser/driver/sap/SapDriver.js +1 -0
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +6 -0
- package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/browser/driver/sqlite/SqliteDriver.js +18 -6
- package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
- package/browser/entity-manager/EntityManager.d.ts +4 -0
- package/browser/entity-manager/EntityManager.js +14 -1
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/error/ForbiddenTransactionModeOverrideError.d.ts +8 -0
- package/browser/error/ForbiddenTransactionModeOverrideError.js +12 -0
- package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -0
- package/browser/error/index.d.ts +1 -0
- package/browser/error/index.js +1 -0
- package/browser/error/index.js.map +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.d.ts +6 -0
- package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/migration/Migration.d.ts +5 -1
- package/browser/migration/Migration.js +2 -1
- package/browser/migration/Migration.js.map +1 -1
- package/browser/migration/MigrationExecutor.js +39 -6
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/migration/MigrationInterface.d.ts +7 -0
- package/browser/migration/MigrationInterface.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +2 -1
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +2 -1
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/query-builder/InsertOrUpdateOptions.d.ts +7 -0
- package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +10 -1
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +1 -0
- package/browser/query-builder/QueryBuilder.js +13 -0
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +1 -0
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +19 -0
- package/browser/query-builder/SelectQueryBuilder.js +76 -8
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +1 -1
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/repository/Repository.d.ts +5 -1
- package/browser/repository/Repository.js +6 -0
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +0 -4
- package/browser/repository/TreeRepository.js +0 -11
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpsertOptions.d.ts +5 -2
- package/browser/repository/UpsertOptions.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
- package/browser/schema-builder/RdbmsSchemaBuilder.js +74 -2
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/view/View.d.ts +13 -1
- package/browser/schema-builder/view/View.js +16 -0
- package/browser/schema-builder/view/View.js.map +1 -1
- package/cli-ts-node-commonjs.js +0 -0
- package/cli-ts-node-esm.js +0 -0
- package/cli.js +0 -0
- package/commands/InitCommand.js +32 -5
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +1 -0
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/decorator/options/JoinTableMultipleColumnsOptions.d.ts +6 -0
- package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/decorator/options/JoinTableOptions.d.ts +6 -0
- package/decorator/options/JoinTableOptions.js.map +1 -1
- package/decorator/relations/JoinTable.js +1 -0
- package/decorator/relations/JoinTable.js.map +1 -1
- package/driver/Driver.d.ts +4 -0
- package/driver/Driver.js.map +1 -1
- package/driver/cordova/CordovaDriver.d.ts +1 -0
- package/driver/cordova/CordovaDriver.js +1 -0
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +1 -0
- package/driver/oracle/OracleDriver.js +1 -0
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/postgres/PostgresConnectionOptions.d.ts +16 -0
- package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +11 -1
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +17 -1
- package/driver/postgres/PostgresQueryRunner.js +99 -1
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapDriver.d.ts +1 -0
- package/driver/sap/SapDriver.js +1 -0
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sqlite/SqliteConnectionOptions.d.ts +6 -0
- package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/driver/sqlite/SqliteDriver.js +18 -6
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/entity-manager/EntityManager.d.ts +4 -0
- package/entity-manager/EntityManager.js +14 -1
- package/entity-manager/EntityManager.js.map +1 -1
- package/error/ForbiddenTransactionModeOverrideError.d.ts +8 -0
- package/error/ForbiddenTransactionModeOverrideError.js +16 -0
- package/error/ForbiddenTransactionModeOverrideError.js.map +1 -0
- package/error/index.d.ts +1 -0
- package/error/index.js +1 -0
- package/error/index.js.map +1 -1
- package/index.mjs +2 -0
- package/metadata-args/JoinTableMetadataArgs.d.ts +6 -0
- package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/migration/Migration.d.ts +5 -1
- package/migration/Migration.js +2 -1
- package/migration/Migration.js.map +1 -1
- package/migration/MigrationExecutor.js +38 -5
- package/migration/MigrationExecutor.js.map +1 -1
- package/migration/MigrationInterface.d.ts +7 -0
- package/migration/MigrationInterface.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +2 -1
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +274 -1
- package/persistence/EntityPersistExecutor.js +2 -1
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/query-builder/InsertOrUpdateOptions.d.ts +7 -0
- package/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +10 -1
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +1 -0
- package/query-builder/QueryBuilder.js +13 -0
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +1 -0
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +19 -0
- package/query-builder/SelectQueryBuilder.js +76 -8
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +1 -1
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/repository/Repository.d.ts +5 -1
- package/repository/Repository.js +6 -0
- package/repository/Repository.js.map +1 -1
- package/repository/TreeRepository.d.ts +0 -4
- package/repository/TreeRepository.js +0 -11
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpsertOptions.d.ts +5 -2
- package/repository/UpsertOptions.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
- package/schema-builder/RdbmsSchemaBuilder.js +74 -2
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/view/View.d.ts +13 -1
- package/schema-builder/view/View.js +16 -0
- package/schema-builder/view/View.js.map +1 -1
|
@@ -1225,6 +1225,7 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1225
1225
|
* Updates composite primary keys.
|
|
1226
1226
|
*/
|
|
1227
1227
|
async updatePrimaryKeys(tableOrName, columns) {
|
|
1228
|
+
var _a;
|
|
1228
1229
|
const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
|
|
1229
1230
|
? tableOrName
|
|
1230
1231
|
: await this.getCachedTable(tableOrName);
|
|
@@ -1248,7 +1249,7 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1248
1249
|
clonedTable.columns
|
|
1249
1250
|
.filter((column) => columnNames.indexOf(column.name) !== -1)
|
|
1250
1251
|
.forEach((column) => (column.isPrimary = true));
|
|
1251
|
-
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
1252
|
+
const pkName = ((_a = primaryColumns[0]) === null || _a === void 0 ? void 0 : _a.primaryKeyConstraintName)
|
|
1252
1253
|
? primaryColumns[0].primaryKeyConstraintName
|
|
1253
1254
|
: this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
|
|
1254
1255
|
const columnNamesString = columnNames
|
|
@@ -1482,6 +1483,21 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1482
1483
|
await this.executeQueries(up, down);
|
|
1483
1484
|
table.addIndex(index);
|
|
1484
1485
|
}
|
|
1486
|
+
/**
|
|
1487
|
+
* Create a new view index.
|
|
1488
|
+
*/
|
|
1489
|
+
async createViewIndex(viewOrName, index) {
|
|
1490
|
+
const view = InstanceChecker_1.InstanceChecker.isView(viewOrName)
|
|
1491
|
+
? viewOrName
|
|
1492
|
+
: await this.getCachedView(viewOrName);
|
|
1493
|
+
// new index may be passed without name. In this case we generate index name manually.
|
|
1494
|
+
if (!index.name)
|
|
1495
|
+
index.name = this.generateIndexName(view, index);
|
|
1496
|
+
const up = this.createViewIndexSql(view, index);
|
|
1497
|
+
const down = this.dropIndexSql(view, index);
|
|
1498
|
+
await this.executeQueries(up, down);
|
|
1499
|
+
view.addIndex(index);
|
|
1500
|
+
}
|
|
1485
1501
|
/**
|
|
1486
1502
|
* Creates a new indices
|
|
1487
1503
|
*/
|
|
@@ -1490,6 +1506,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1490
1506
|
await this.createIndex(tableOrName, index);
|
|
1491
1507
|
}
|
|
1492
1508
|
}
|
|
1509
|
+
/**
|
|
1510
|
+
* Creates new view indices
|
|
1511
|
+
*/
|
|
1512
|
+
async createViewIndices(viewOrName, indices) {
|
|
1513
|
+
for (const index of indices) {
|
|
1514
|
+
await this.createViewIndex(viewOrName, index);
|
|
1515
|
+
}
|
|
1516
|
+
}
|
|
1493
1517
|
/**
|
|
1494
1518
|
* Drops an index from the table.
|
|
1495
1519
|
*/
|
|
@@ -1510,6 +1534,26 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1510
1534
|
await this.executeQueries(up, down);
|
|
1511
1535
|
table.removeIndex(index);
|
|
1512
1536
|
}
|
|
1537
|
+
/**
|
|
1538
|
+
* Drops an index from a view.
|
|
1539
|
+
*/
|
|
1540
|
+
async dropViewIndex(viewOrName, indexOrName) {
|
|
1541
|
+
const view = InstanceChecker_1.InstanceChecker.isView(viewOrName)
|
|
1542
|
+
? viewOrName
|
|
1543
|
+
: await this.getCachedView(viewOrName);
|
|
1544
|
+
const index = InstanceChecker_1.InstanceChecker.isTableIndex(indexOrName)
|
|
1545
|
+
? indexOrName
|
|
1546
|
+
: view.indices.find((i) => i.name === indexOrName);
|
|
1547
|
+
if (!index)
|
|
1548
|
+
throw new error_1.TypeORMError(`Supplied index ${indexOrName} was not found in view ${view.name}`);
|
|
1549
|
+
// old index may be passed without name. In this case we generate index name manually.
|
|
1550
|
+
if (!index.name)
|
|
1551
|
+
index.name = this.generateIndexName(view, index);
|
|
1552
|
+
const up = this.dropIndexSql(view, index);
|
|
1553
|
+
const down = this.createViewIndexSql(view, index);
|
|
1554
|
+
await this.executeQueries(up, down);
|
|
1555
|
+
view.removeIndex(index);
|
|
1556
|
+
}
|
|
1513
1557
|
/**
|
|
1514
1558
|
* Drops an indices from the table.
|
|
1515
1559
|
*/
|
|
@@ -1608,12 +1652,41 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1608
1652
|
return `("t"."schema" = '${schema}' AND "t"."name" = '${tableName}')`;
|
|
1609
1653
|
})
|
|
1610
1654
|
.join(" OR ");
|
|
1655
|
+
const constraintsCondition = viewNames.length === 0
|
|
1656
|
+
? "1=1"
|
|
1657
|
+
: viewNames
|
|
1658
|
+
.map((tableName) => this.driver.parseTableName(tableName))
|
|
1659
|
+
.map(({ schema, tableName }) => {
|
|
1660
|
+
if (!schema) {
|
|
1661
|
+
schema =
|
|
1662
|
+
this.driver.options.schema || currentSchema;
|
|
1663
|
+
}
|
|
1664
|
+
return `("ns"."nspname" = '${schema}' AND "t"."relname" = '${tableName}')`;
|
|
1665
|
+
})
|
|
1666
|
+
.join(" OR ");
|
|
1667
|
+
const indicesSql = `SELECT "ns"."nspname" AS "table_schema", "t"."relname" AS "table_name", "i"."relname" AS "constraint_name", "a"."attname" AS "column_name", ` +
|
|
1668
|
+
`CASE "ix"."indisunique" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS "is_unique", pg_get_expr("ix"."indpred", "ix"."indrelid") AS "condition", ` +
|
|
1669
|
+
`"types"."typname" AS "type_name" ` +
|
|
1670
|
+
`FROM "pg_class" "t" ` +
|
|
1671
|
+
`INNER JOIN "pg_index" "ix" ON "ix"."indrelid" = "t"."oid" ` +
|
|
1672
|
+
`INNER JOIN "pg_attribute" "a" ON "a"."attrelid" = "t"."oid" AND "a"."attnum" = ANY ("ix"."indkey") ` +
|
|
1673
|
+
`INNER JOIN "pg_namespace" "ns" ON "ns"."oid" = "t"."relnamespace" ` +
|
|
1674
|
+
`INNER JOIN "pg_class" "i" ON "i"."oid" = "ix"."indexrelid" ` +
|
|
1675
|
+
`INNER JOIN "pg_type" "types" ON "types"."oid" = "a"."atttypid" ` +
|
|
1676
|
+
`LEFT JOIN "pg_constraint" "cnst" ON "cnst"."conname" = "i"."relname" ` +
|
|
1677
|
+
`WHERE "t"."relkind" IN ('m') AND "cnst"."contype" IS NULL AND (${constraintsCondition})`;
|
|
1611
1678
|
const query = `SELECT "t".* FROM ${this.escapePath(this.getTypeormMetadataTableName())} "t" ` +
|
|
1612
1679
|
`INNER JOIN "pg_catalog"."pg_class" "c" ON "c"."relname" = "t"."name" ` +
|
|
1613
1680
|
`INNER JOIN "pg_namespace" "n" ON "n"."oid" = "c"."relnamespace" AND "n"."nspname" = "t"."schema" ` +
|
|
1614
1681
|
`WHERE "t"."type" IN ('${MetadataTableType_1.MetadataTableType.VIEW}', '${MetadataTableType_1.MetadataTableType.MATERIALIZED_VIEW}') ${viewsCondition ? `AND (${viewsCondition})` : ""}`;
|
|
1615
1682
|
const dbViews = await this.query(query);
|
|
1683
|
+
const dbIndices = await this.query(indicesSql);
|
|
1616
1684
|
return dbViews.map((dbView) => {
|
|
1685
|
+
// find index constraints of table, group them by constraint name and build TableIndex.
|
|
1686
|
+
const tableIndexConstraints = OrmUtils_1.OrmUtils.uniq(dbIndices.filter((dbIndex) => {
|
|
1687
|
+
return (dbIndex["table_name"] === dbView["name"] &&
|
|
1688
|
+
dbIndex["table_schema"] === dbView["schema"]);
|
|
1689
|
+
}), (dbIndex) => dbIndex["constraint_name"]);
|
|
1617
1690
|
const view = new View_1.View();
|
|
1618
1691
|
const schema = dbView["schema"] === currentSchema &&
|
|
1619
1692
|
!this.driver.options.schema
|
|
@@ -1625,6 +1698,22 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1625
1698
|
view.expression = dbView["value"];
|
|
1626
1699
|
view.materialized =
|
|
1627
1700
|
dbView["type"] === MetadataTableType_1.MetadataTableType.MATERIALIZED_VIEW;
|
|
1701
|
+
view.indices = tableIndexConstraints.map((constraint) => {
|
|
1702
|
+
const indices = dbIndices.filter((index) => {
|
|
1703
|
+
return (index["table_schema"] === constraint["table_schema"] &&
|
|
1704
|
+
index["table_name"] === constraint["table_name"] &&
|
|
1705
|
+
index["constraint_name"] ===
|
|
1706
|
+
constraint["constraint_name"]);
|
|
1707
|
+
});
|
|
1708
|
+
return new TableIndex_1.TableIndex({
|
|
1709
|
+
view: view,
|
|
1710
|
+
name: constraint["constraint_name"],
|
|
1711
|
+
columnNames: indices.map((i) => i["column_name"]),
|
|
1712
|
+
isUnique: constraint["is_unique"] === "TRUE",
|
|
1713
|
+
where: constraint["condition"],
|
|
1714
|
+
isFulltext: false,
|
|
1715
|
+
});
|
|
1716
|
+
});
|
|
1628
1717
|
return view;
|
|
1629
1718
|
});
|
|
1630
1719
|
}
|
|
@@ -2321,6 +2410,15 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2321
2410
|
.join(", ");
|
|
2322
2411
|
return new Query_1.Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} ${index.isSpatial ? "USING GiST " : ""}(${columns}) ${index.where ? "WHERE " + index.where : ""}`);
|
|
2323
2412
|
}
|
|
2413
|
+
/**
|
|
2414
|
+
* Builds create view index sql.
|
|
2415
|
+
*/
|
|
2416
|
+
createViewIndexSql(view, index) {
|
|
2417
|
+
const columns = index.columnNames
|
|
2418
|
+
.map((columnName) => `"${columnName}"`)
|
|
2419
|
+
.join(", ");
|
|
2420
|
+
return new Query_1.Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(view)} (${columns}) ${index.where ? "WHERE " + index.where : ""}`);
|
|
2421
|
+
}
|
|
2324
2422
|
/**
|
|
2325
2423
|
* Builds drop index sql.
|
|
2326
2424
|
*/
|