typeorm 0.3.11-dev.f07fb2c → 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 +75 -3
- 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 +4 -0
- package/browser/repository/Repository.js +6 -0
- package/browser/repository/Repository.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 +75 -3
- 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 +4 -0
- package/repository/Repository.js +6 -0
- package/repository/Repository.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
|
@@ -1222,6 +1222,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
|
|
|
1222
1222
|
* Updates composite primary keys.
|
|
1223
1223
|
*/
|
|
1224
1224
|
async updatePrimaryKeys(tableOrName, columns) {
|
|
1225
|
+
var _a;
|
|
1225
1226
|
const table = InstanceChecker.isTable(tableOrName)
|
|
1226
1227
|
? tableOrName
|
|
1227
1228
|
: await this.getCachedTable(tableOrName);
|
|
@@ -1245,7 +1246,7 @@ export class PostgresQueryRunner extends BaseQueryRunner {
|
|
|
1245
1246
|
clonedTable.columns
|
|
1246
1247
|
.filter((column) => columnNames.indexOf(column.name) !== -1)
|
|
1247
1248
|
.forEach((column) => (column.isPrimary = true));
|
|
1248
|
-
const pkName = primaryColumns[0].primaryKeyConstraintName
|
|
1249
|
+
const pkName = ((_a = primaryColumns[0]) === null || _a === void 0 ? void 0 : _a.primaryKeyConstraintName)
|
|
1249
1250
|
? primaryColumns[0].primaryKeyConstraintName
|
|
1250
1251
|
: this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
|
|
1251
1252
|
const columnNamesString = columnNames
|
|
@@ -1479,6 +1480,21 @@ export class PostgresQueryRunner extends BaseQueryRunner {
|
|
|
1479
1480
|
await this.executeQueries(up, down);
|
|
1480
1481
|
table.addIndex(index);
|
|
1481
1482
|
}
|
|
1483
|
+
/**
|
|
1484
|
+
* Create a new view index.
|
|
1485
|
+
*/
|
|
1486
|
+
async createViewIndex(viewOrName, index) {
|
|
1487
|
+
const view = InstanceChecker.isView(viewOrName)
|
|
1488
|
+
? viewOrName
|
|
1489
|
+
: await this.getCachedView(viewOrName);
|
|
1490
|
+
// new index may be passed without name. In this case we generate index name manually.
|
|
1491
|
+
if (!index.name)
|
|
1492
|
+
index.name = this.generateIndexName(view, index);
|
|
1493
|
+
const up = this.createViewIndexSql(view, index);
|
|
1494
|
+
const down = this.dropIndexSql(view, index);
|
|
1495
|
+
await this.executeQueries(up, down);
|
|
1496
|
+
view.addIndex(index);
|
|
1497
|
+
}
|
|
1482
1498
|
/**
|
|
1483
1499
|
* Creates a new indices
|
|
1484
1500
|
*/
|
|
@@ -1487,6 +1503,14 @@ export class PostgresQueryRunner extends BaseQueryRunner {
|
|
|
1487
1503
|
await this.createIndex(tableOrName, index);
|
|
1488
1504
|
}
|
|
1489
1505
|
}
|
|
1506
|
+
/**
|
|
1507
|
+
* Creates new view indices
|
|
1508
|
+
*/
|
|
1509
|
+
async createViewIndices(viewOrName, indices) {
|
|
1510
|
+
for (const index of indices) {
|
|
1511
|
+
await this.createViewIndex(viewOrName, index);
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1490
1514
|
/**
|
|
1491
1515
|
* Drops an index from the table.
|
|
1492
1516
|
*/
|
|
@@ -1507,6 +1531,26 @@ export class PostgresQueryRunner extends BaseQueryRunner {
|
|
|
1507
1531
|
await this.executeQueries(up, down);
|
|
1508
1532
|
table.removeIndex(index);
|
|
1509
1533
|
}
|
|
1534
|
+
/**
|
|
1535
|
+
* Drops an index from a view.
|
|
1536
|
+
*/
|
|
1537
|
+
async dropViewIndex(viewOrName, indexOrName) {
|
|
1538
|
+
const view = InstanceChecker.isView(viewOrName)
|
|
1539
|
+
? viewOrName
|
|
1540
|
+
: await this.getCachedView(viewOrName);
|
|
1541
|
+
const index = InstanceChecker.isTableIndex(indexOrName)
|
|
1542
|
+
? indexOrName
|
|
1543
|
+
: view.indices.find((i) => i.name === indexOrName);
|
|
1544
|
+
if (!index)
|
|
1545
|
+
throw new TypeORMError(`Supplied index ${indexOrName} was not found in view ${view.name}`);
|
|
1546
|
+
// old index may be passed without name. In this case we generate index name manually.
|
|
1547
|
+
if (!index.name)
|
|
1548
|
+
index.name = this.generateIndexName(view, index);
|
|
1549
|
+
const up = this.dropIndexSql(view, index);
|
|
1550
|
+
const down = this.createViewIndexSql(view, index);
|
|
1551
|
+
await this.executeQueries(up, down);
|
|
1552
|
+
view.removeIndex(index);
|
|
1553
|
+
}
|
|
1510
1554
|
/**
|
|
1511
1555
|
* Drops an indices from the table.
|
|
1512
1556
|
*/
|
|
@@ -1605,12 +1649,41 @@ export class PostgresQueryRunner extends BaseQueryRunner {
|
|
|
1605
1649
|
return `("t"."schema" = '${schema}' AND "t"."name" = '${tableName}')`;
|
|
1606
1650
|
})
|
|
1607
1651
|
.join(" OR ");
|
|
1652
|
+
const constraintsCondition = viewNames.length === 0
|
|
1653
|
+
? "1=1"
|
|
1654
|
+
: viewNames
|
|
1655
|
+
.map((tableName) => this.driver.parseTableName(tableName))
|
|
1656
|
+
.map(({ schema, tableName }) => {
|
|
1657
|
+
if (!schema) {
|
|
1658
|
+
schema =
|
|
1659
|
+
this.driver.options.schema || currentSchema;
|
|
1660
|
+
}
|
|
1661
|
+
return `("ns"."nspname" = '${schema}' AND "t"."relname" = '${tableName}')`;
|
|
1662
|
+
})
|
|
1663
|
+
.join(" OR ");
|
|
1664
|
+
const indicesSql = `SELECT "ns"."nspname" AS "table_schema", "t"."relname" AS "table_name", "i"."relname" AS "constraint_name", "a"."attname" AS "column_name", ` +
|
|
1665
|
+
`CASE "ix"."indisunique" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS "is_unique", pg_get_expr("ix"."indpred", "ix"."indrelid") AS "condition", ` +
|
|
1666
|
+
`"types"."typname" AS "type_name" ` +
|
|
1667
|
+
`FROM "pg_class" "t" ` +
|
|
1668
|
+
`INNER JOIN "pg_index" "ix" ON "ix"."indrelid" = "t"."oid" ` +
|
|
1669
|
+
`INNER JOIN "pg_attribute" "a" ON "a"."attrelid" = "t"."oid" AND "a"."attnum" = ANY ("ix"."indkey") ` +
|
|
1670
|
+
`INNER JOIN "pg_namespace" "ns" ON "ns"."oid" = "t"."relnamespace" ` +
|
|
1671
|
+
`INNER JOIN "pg_class" "i" ON "i"."oid" = "ix"."indexrelid" ` +
|
|
1672
|
+
`INNER JOIN "pg_type" "types" ON "types"."oid" = "a"."atttypid" ` +
|
|
1673
|
+
`LEFT JOIN "pg_constraint" "cnst" ON "cnst"."conname" = "i"."relname" ` +
|
|
1674
|
+
`WHERE "t"."relkind" IN ('m') AND "cnst"."contype" IS NULL AND (${constraintsCondition})`;
|
|
1608
1675
|
const query = `SELECT "t".* FROM ${this.escapePath(this.getTypeormMetadataTableName())} "t" ` +
|
|
1609
1676
|
`INNER JOIN "pg_catalog"."pg_class" "c" ON "c"."relname" = "t"."name" ` +
|
|
1610
1677
|
`INNER JOIN "pg_namespace" "n" ON "n"."oid" = "c"."relnamespace" AND "n"."nspname" = "t"."schema" ` +
|
|
1611
1678
|
`WHERE "t"."type" IN ('${MetadataTableType.VIEW}', '${MetadataTableType.MATERIALIZED_VIEW}') ${viewsCondition ? `AND (${viewsCondition})` : ""}`;
|
|
1612
1679
|
const dbViews = await this.query(query);
|
|
1680
|
+
const dbIndices = await this.query(indicesSql);
|
|
1613
1681
|
return dbViews.map((dbView) => {
|
|
1682
|
+
// find index constraints of table, group them by constraint name and build TableIndex.
|
|
1683
|
+
const tableIndexConstraints = OrmUtils.uniq(dbIndices.filter((dbIndex) => {
|
|
1684
|
+
return (dbIndex["table_name"] === dbView["name"] &&
|
|
1685
|
+
dbIndex["table_schema"] === dbView["schema"]);
|
|
1686
|
+
}), (dbIndex) => dbIndex["constraint_name"]);
|
|
1614
1687
|
const view = new View();
|
|
1615
1688
|
const schema = dbView["schema"] === currentSchema &&
|
|
1616
1689
|
!this.driver.options.schema
|
|
@@ -1622,6 +1695,22 @@ export class PostgresQueryRunner extends BaseQueryRunner {
|
|
|
1622
1695
|
view.expression = dbView["value"];
|
|
1623
1696
|
view.materialized =
|
|
1624
1697
|
dbView["type"] === MetadataTableType.MATERIALIZED_VIEW;
|
|
1698
|
+
view.indices = tableIndexConstraints.map((constraint) => {
|
|
1699
|
+
const indices = dbIndices.filter((index) => {
|
|
1700
|
+
return (index["table_schema"] === constraint["table_schema"] &&
|
|
1701
|
+
index["table_name"] === constraint["table_name"] &&
|
|
1702
|
+
index["constraint_name"] ===
|
|
1703
|
+
constraint["constraint_name"]);
|
|
1704
|
+
});
|
|
1705
|
+
return new TableIndex({
|
|
1706
|
+
view: view,
|
|
1707
|
+
name: constraint["constraint_name"],
|
|
1708
|
+
columnNames: indices.map((i) => i["column_name"]),
|
|
1709
|
+
isUnique: constraint["is_unique"] === "TRUE",
|
|
1710
|
+
where: constraint["condition"],
|
|
1711
|
+
isFulltext: false,
|
|
1712
|
+
});
|
|
1713
|
+
});
|
|
1625
1714
|
return view;
|
|
1626
1715
|
});
|
|
1627
1716
|
}
|
|
@@ -2318,6 +2407,15 @@ export class PostgresQueryRunner extends BaseQueryRunner {
|
|
|
2318
2407
|
.join(", ");
|
|
2319
2408
|
return new Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} ${index.isSpatial ? "USING GiST " : ""}(${columns}) ${index.where ? "WHERE " + index.where : ""}`);
|
|
2320
2409
|
}
|
|
2410
|
+
/**
|
|
2411
|
+
* Builds create view index sql.
|
|
2412
|
+
*/
|
|
2413
|
+
createViewIndexSql(view, index) {
|
|
2414
|
+
const columns = index.columnNames
|
|
2415
|
+
.map((columnName) => `"${columnName}"`)
|
|
2416
|
+
.join(", ");
|
|
2417
|
+
return new Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(view)} (${columns}) ${index.where ? "WHERE " + index.where : ""}`);
|
|
2418
|
+
}
|
|
2321
2419
|
/**
|
|
2322
2420
|
* Builds drop index sql.
|
|
2323
2421
|
*/
|