mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-23 10:18:56 +02:00
Fix migrations with DBAL 3
This commit is contained in:
parent
f163b8d223
commit
4a90f2ac35
2 changed files with 14 additions and 8 deletions
|
@ -41,16 +41,17 @@ final class Version20190902140506 extends AbstractMultiPlatformMigration
|
|||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
|
||||
|
||||
try {
|
||||
//Check if we can use this migration method:
|
||||
$version = (int) $this->connection->fetchColumn("SELECT keyValue AS version FROM `internal` WHERE `keyName` = 'dbVersion'");
|
||||
$this->abortIf(26 !== $version, 'This database migration can only be used if the database version is 26! Install Part-DB 0.5.6 and update database there!');
|
||||
} catch (DBALException $dBALException) {
|
||||
//when the table was not found, then you can not use this migration
|
||||
$version = $this->getOldDBVersion();
|
||||
|
||||
//If we dont have an old databse, skip this migration
|
||||
if ($version === 0) {
|
||||
$this->warnIf(true, 'Empty database detected. Skip migration.');
|
||||
return;
|
||||
}
|
||||
|
||||
$this->abortIf(26 !== $version, 'This database migration can only be used if the database version is 26! Install Part-DB 0.5.6 and update database there!');
|
||||
|
||||
//Deactive SQL Modes (especially NO_ZERO_DATE, which prevents updating)
|
||||
$this->addSql("SET sql_mode = ''");
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace App\Migration;
|
|||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
@ -68,8 +69,12 @@ abstract class AbstractMultiPlatformMigration extends AbstractMigration
|
|||
}
|
||||
|
||||
try {
|
||||
return (int) $this->connection->fetchColumn("SELECT keyValue AS version FROM `internal` WHERE `keyName` = 'dbVersion'");
|
||||
} catch (DBALException $dBALException) {
|
||||
$version = $this->connection->fetchOne("SELECT keyValue AS version FROM `internal` WHERE `keyName` = 'dbVersion'");
|
||||
if (is_bool($version)) {
|
||||
return 0;
|
||||
}
|
||||
return (int) $version;
|
||||
} catch (Exception $dBALException) {
|
||||
//when the table was not found, we can proceed, because we have an empty DB!
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue