fixed issue with onDelete not working in sqllite

This commit is contained in:
Umed Khudoiberdiev 2016-12-02 11:23:14 +05:00
parent 56373e84c0
commit 94d3b218a3
2 changed files with 5 additions and 0 deletions

View File

@ -83,6 +83,10 @@ export class SqliteDriver implements Driver {
connection: connection,
isTransactionActive: false
};
// we need to enable foreign keys in sqlite to make sure all foreign key related features
// working properly. this also makes onDelete to work with sqlite.
connection.run(`PRAGMA foreign_keys = ON`);
ok();
});
});

View File

@ -562,6 +562,7 @@ export class SqliteQueryRunner implements QueryRunner {
const columnNames = foreignKey.columnNames.map(name => `"${name}"`).join(", ");
const referencedColumnNames = foreignKey.referencedColumnNames.map(name => `"${name}"`).join(", ");
sql1 += `, FOREIGN KEY(${columnNames}) REFERENCES "${foreignKey.referencedTableName}"(${referencedColumnNames})`;
if (foreignKey.onDelete) sql1 += " ON DELETE " + foreignKey.onDelete;
});
const primaryKeyColumns = tableSchema.columns.filter(column => column.isPrimary && !column.isGenerated);