diff --git a/src/Doctrine/AbstractMigration.php b/src/Doctrine/AbstractMigration.php index 7f509044..7429e19d 100644 --- a/src/Doctrine/AbstractMigration.php +++ b/src/Doctrine/AbstractMigration.php @@ -52,6 +52,13 @@ abstract class AbstractMigration extends BaseAbstractMigration implements Contai return 'kimai2_' . $name; } + /** + * Whether we should deactivate foreign key support for SQLite. + * This is required, if columns are changed. + * SQLite will drop the table and therefor all referenced data if we don't deactivate this. + * + * @return bool + */ protected function isSupportingForeignKeys(): bool { return true; diff --git a/src/Migrations/Version20190706224219.php b/src/Migrations/Version20190706224219.php index f7f8116c..ab07ca90 100644 --- a/src/Migrations/Version20190706224219.php +++ b/src/Migrations/Version20190706224219.php @@ -26,6 +26,21 @@ final class Version20190706224219 extends AbstractMigration return 'Creates several indices to improve speed for default queries.'; } + protected function isSupportingForeignKeys(): bool + { + return false; + } + + public function isTransactional(): bool + { + if ($this->isPlatformSqlite()) { + // does fail if we use transactions, as tables are re-created and foreign keys would fail + return false; + } + + return true; + } + public function up(Schema $schema): void { $timesheet = $schema->getTable('kimai2_timesheet');