Skip to content

Commit

Permalink
fix: support table names between schemas in oracle (#7951)
Browse files Browse the repository at this point in the history
  • Loading branch information
imnotjames committed Jul 24, 2021
1 parent bd9e767 commit aa45b93
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions src/driver/oracle/OracleQueryRunner.ts
Expand Up @@ -1326,7 +1326,12 @@ export class OracleQueryRunner extends BaseQueryRunner implements QueryRunner {

// create columns from the loaded columns
table.columns = dbColumns
.filter(dbColumn => dbColumn["TABLE_NAME"] === table.name)
.filter(
dbColumn => (
dbColumn["OWNER"] === dbTable["OWNER"] &&
dbColumn["TABLE_NAME"] === dbTable["TABLE_NAME"]
)
)
.map(dbColumn => {
const columnConstraints = dbConstraints.filter(
dbConstraint => (
Expand Down Expand Up @@ -1417,7 +1422,13 @@ export class OracleQueryRunner extends BaseQueryRunner implements QueryRunner {
}), dbConstraint => dbConstraint["CONSTRAINT_NAME"]);

table.checks = tableCheckConstraints.map(constraint => {
const checks = dbConstraints.filter(dbC => dbC["CONSTRAINT_NAME"] === constraint["CONSTRAINT_NAME"]);
const checks = dbConstraints.filter(
dbC => (
dbC["TABLE_NAME"] === constraint["TABLE_NAME"] &&
dbC["OWNER"] === constraint["OWNER"] &&
dbC["CONSTRAINT_NAME"] === constraint["CONSTRAINT_NAME"]
)
);
return new TableCheck({
name: constraint["CONSTRAINT_NAME"],
columnNames: checks.map(c => c["COLUMN_NAME"]),
Expand All @@ -1426,9 +1437,10 @@ export class OracleQueryRunner extends BaseQueryRunner implements QueryRunner {
});

// find foreign key constraints of table, group them by constraint name and build TableForeignKey.
const tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter(dbForeignKey => {
return dbForeignKey["TABLE_NAME"] === table.name;
}), dbForeignKey => dbForeignKey["CONSTRAINT_NAME"]);
const tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter(dbForeignKey => (
dbForeignKey["OWNER"] === dbTable["OWNER"] &&
dbForeignKey["TABLE_NAME"] === dbTable["TABLE_NAME"]
)), dbForeignKey => dbForeignKey["CONSTRAINT_NAME"]);

table.foreignKeys = tableForeignKeyConstraints.map(dbForeignKey => {
const foreignKeys = dbForeignKeys.filter(dbFk => (
Expand All @@ -1440,6 +1452,7 @@ export class OracleQueryRunner extends BaseQueryRunner implements QueryRunner {
name: dbForeignKey["CONSTRAINT_NAME"],
columnNames: foreignKeys.map(dbFk => dbFk["COLUMN_NAME"]),
referencedDatabase: table.database,
referencedSchema: dbForeignKey["OWNER"],
referencedTableName: dbForeignKey["REFERENCED_TABLE_NAME"],
referencedColumnNames: foreignKeys.map(dbFk => dbFk["REFERENCED_COLUMN_NAME"]),
onDelete: dbForeignKey["ON_DELETE"],
Expand Down

0 comments on commit aa45b93

Please sign in to comment.