mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-20 17:15:51 +02:00
Updated to doctrine migrations 3.0.
This commit is contained in:
parent
c3d22556a0
commit
96acf0d858
16 changed files with 394 additions and 342 deletions
620
composer.lock
generated
620
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
doctrine_migrations:
|
doctrine_migrations:
|
||||||
dir_name: '%kernel.project_dir%/src/Migrations'
|
migrations_paths:
|
||||||
# namespace is arbitrary but should be different from App\Migrations
|
# namespace is arbitrary but should be different from App\Migrations
|
||||||
# as migrations classes should NOT be autoloaded
|
# as migrations classes should NOT be autoloaded
|
||||||
namespace: DoctrineMigrations
|
'DoctrineMigrations': '%kernel.project_dir%/migrations'
|
||||||
|
|
|
@ -39,6 +39,9 @@ services:
|
||||||
Swap\Swap:
|
Swap\Swap:
|
||||||
alias: 'florianv_swap.swap'
|
alias: 'florianv_swap.swap'
|
||||||
|
|
||||||
|
Doctrine\Migrations\DependencyFactory:
|
||||||
|
alias: 'doctrine.migrations.dependency_factory'
|
||||||
|
|
||||||
####################################################################################################################
|
####################################################################################################################
|
||||||
# Email
|
# Email
|
||||||
####################################################################################################################
|
####################################################################################################################
|
||||||
|
|
0
migrations/.gitignore
vendored
Normal file
0
migrations/.gitignore
vendored
Normal file
|
@ -22,10 +22,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\DBALException;
|
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
@ -40,7 +38,7 @@ final class Version1 extends AbstractMultiPlatformMigration
|
||||||
public function mySQLUp(Schema $schema): void
|
public function mySQLUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->skipIf($this->getOldDBVersion() > 0, 'Old Part-DB Database detected! Continue with upgrade...');
|
$this->warnIf($this->getOldDBVersion() > 0, 'Old Part-DB Database detected! Continue with upgrade...');
|
||||||
|
|
||||||
// this up() migration is auto-generated, please modify it to your needs
|
// 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\'.');
|
$this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
|
||||||
|
@ -228,11 +226,11 @@ EOD;
|
||||||
|
|
||||||
public function sqLiteUp(Schema $schema): void
|
public function sqLiteUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sqLiteDown(Schema $schema): void
|
public function sqLiteDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,10 +22,9 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\DBALException;
|
use Doctrine\DBAL\DBALException;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
@ -48,7 +47,7 @@ final class Version20190902140506 extends AbstractMultiPlatformMigration
|
||||||
$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!');
|
$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) {
|
} catch (DBALException $dBALException) {
|
||||||
//when the table was not found, then you can not use this migration
|
//when the table was not found, then you can not use this migration
|
||||||
$this->skipIf(true, 'Empty database detected. Skip migration.');
|
$this->warnIf(true, 'Empty database detected. Skip migration.');
|
||||||
}
|
}
|
||||||
|
|
||||||
//Deactive SQL Modes (especially NO_ZERO_DATE, which prevents updating)
|
//Deactive SQL Modes (especially NO_ZERO_DATE, which prevents updating)
|
||||||
|
@ -320,11 +319,11 @@ final class Version20190902140506 extends AbstractMultiPlatformMigration
|
||||||
|
|
||||||
public function sqLiteUp(Schema $schema): void
|
public function sqLiteUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sqLiteDown(Schema $schema): void
|
public function sqLiteDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,9 +22,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
@ -84,11 +83,11 @@ final class Version20190913141126 extends AbstractMultiPlatformMigration
|
||||||
|
|
||||||
public function sqLiteUp(Schema $schema): void
|
public function sqLiteUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sqLiteDown(Schema $schema): void
|
public function sqLiteDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,9 +22,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
@ -173,11 +172,11 @@ final class Version20190924113252 extends AbstractMultiPlatformMigration
|
||||||
|
|
||||||
public function sqLiteUp(Schema $schema): void
|
public function sqLiteUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sqLiteDown(Schema $schema): void
|
public function sqLiteDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,9 +22,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
@ -59,11 +58,11 @@ final class Version20191214153125 extends AbstractMultiPlatformMigration
|
||||||
|
|
||||||
public function sqLiteUp(Schema $schema): void
|
public function sqLiteUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sqLiteDown(Schema $schema): void
|
public function sqLiteDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,9 +22,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
@ -62,11 +61,11 @@ final class Version20200126191823 extends AbstractMultiPlatformMigration
|
||||||
|
|
||||||
public function sqLiteUp(Schema $schema): void
|
public function sqLiteUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sqLiteDown(Schema $schema): void
|
public function sqLiteDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,9 +4,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
@ -52,11 +51,11 @@ final class Version20200311204104 extends AbstractMultiPlatformMigration
|
||||||
|
|
||||||
public function sqLiteUp(Schema $schema): void
|
public function sqLiteUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sqLiteDown(Schema $schema): void
|
public function sqLiteDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,9 +4,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
@ -36,11 +35,11 @@ final class Version20200409130946 extends AbstractMultiPlatformMigration
|
||||||
|
|
||||||
public function sqLiteUp(Schema $schema): void
|
public function sqLiteUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sqLiteDown(Schema $schema): void
|
public function sqLiteDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
$this->skipIf(true, "Migration not needed for SQLite. Skipping...");
|
$this->warnIf(true, "Migration not needed for SQLite. Skipping...");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,9 +4,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
namespace DoctrineMigrations;
|
||||||
|
|
||||||
use App\Migrations\AbstractMultiPlatformMigration;
|
use App\Migration\AbstractMultiPlatformMigration;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
* Auto-generated Migration: Please modify to your needs!
|
|
@ -45,8 +45,10 @@ namespace App\EventSubscriber\LogSystem;
|
||||||
use App\Entity\LogSystem\DatabaseUpdatedLogEntry;
|
use App\Entity\LogSystem\DatabaseUpdatedLogEntry;
|
||||||
use App\Services\LogSystem\EventLogger;
|
use App\Services\LogSystem\EventLogger;
|
||||||
use Doctrine\Common\EventSubscriber;
|
use Doctrine\Common\EventSubscriber;
|
||||||
|
use Doctrine\Migrations\DependencyFactory;
|
||||||
use Doctrine\Migrations\Event\MigrationsEventArgs;
|
use Doctrine\Migrations\Event\MigrationsEventArgs;
|
||||||
use Doctrine\Migrations\Events;
|
use Doctrine\Migrations\Events;
|
||||||
|
use Doctrine\Migrations\Version\AliasResolver;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This subscriber logs databaseMigrations to Event log.
|
* This subscriber logs databaseMigrations to Event log.
|
||||||
|
@ -57,21 +59,24 @@ class LogDBMigrationSubscriber implements EventSubscriber
|
||||||
protected $new_version = null;
|
protected $new_version = null;
|
||||||
|
|
||||||
protected $eventLogger;
|
protected $eventLogger;
|
||||||
|
protected $aliasResolver;
|
||||||
|
|
||||||
public function __construct(EventLogger $eventLogger)
|
public function __construct(EventLogger $eventLogger, DependencyFactory $dependencyFactory)
|
||||||
{
|
{
|
||||||
$this->eventLogger = $eventLogger;
|
$this->eventLogger = $eventLogger;
|
||||||
|
$this->aliasResolver = $dependencyFactory->getVersionAliasResolver();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onMigrationsMigrated(MigrationsEventArgs $args): void
|
public function onMigrationsMigrated(MigrationsEventArgs $args): void
|
||||||
{
|
{
|
||||||
//Dont do anything if this was a dry run
|
//Dont do anything if this was a dry run
|
||||||
if ($args->isDryRun()) {
|
if ($args->getMigratorConfiguration()->isDryRun()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Save the version after the migration
|
//Save the version after the migration
|
||||||
$this->new_version = $args->getConfiguration()->getCurrentVersion();
|
//$this->new_version = $args->getMigratorConfiguration()->getCurrentVersion();
|
||||||
|
$this->new_version = (string) $this->aliasResolver->resolveVersionAlias('current');
|
||||||
|
|
||||||
//After everything is done, write the results to DB log
|
//After everything is done, write the results to DB log
|
||||||
$this->old_version = empty($this->old_version) ? 'legacy/empty' : $this->old_version;
|
$this->old_version = empty($this->old_version) ? 'legacy/empty' : $this->old_version;
|
||||||
|
@ -89,7 +94,8 @@ class LogDBMigrationSubscriber implements EventSubscriber
|
||||||
{
|
{
|
||||||
// Save the version before any migration
|
// Save the version before any migration
|
||||||
if (null === $this->old_version) {
|
if (null === $this->old_version) {
|
||||||
$this->old_version = $args->getConfiguration()->getCurrentVersion();
|
//$this->old_version = $args->getConfiguration()->getCurrentVersion();
|
||||||
|
$this->old_version = (string) $this->aliasResolver->resolveVersionAlias('current');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
namespace App\Migrations;
|
namespace App\Migration;
|
||||||
|
|
||||||
|
|
||||||
|
use Doctrine\DBAL\Connection;
|
||||||
use Doctrine\DBAL\DBALException;
|
use Doctrine\DBAL\DBALException;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
use Doctrine\Migrations\AbstractMigration;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
abstract class AbstractMultiPlatformMigration extends AbstractMigration
|
abstract class AbstractMultiPlatformMigration extends AbstractMigration
|
||||||
{
|
{
|
||||||
|
@ -15,6 +17,14 @@ abstract class AbstractMultiPlatformMigration extends AbstractMigration
|
||||||
protected $permissions_updated = false;
|
protected $permissions_updated = false;
|
||||||
protected $admin_pw = "";
|
protected $admin_pw = "";
|
||||||
|
|
||||||
|
protected $logger;
|
||||||
|
|
||||||
|
public function __construct(Connection $connection, LoggerInterface $logger)
|
||||||
|
{
|
||||||
|
$this->logger = $logger;
|
||||||
|
AbstractMigration::__construct($connection, $logger);
|
||||||
|
}
|
||||||
|
|
||||||
public function up(Schema $schema): void
|
public function up(Schema $schema): void
|
||||||
{
|
{
|
||||||
$db_type = $this->connection->getDatabasePlatform()->getName();
|
$db_type = $this->connection->getDatabasePlatform()->getName();
|
||||||
|
@ -95,11 +105,12 @@ abstract class AbstractMultiPlatformMigration extends AbstractMigration
|
||||||
public function postUp(Schema $schema): void
|
public function postUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
parent::postUp($schema);
|
parent::postUp($schema);
|
||||||
$this->write('<question>[!!!] Permissions were updated! Please check if they fit your expectations!</question>');
|
$this->logger->warning('<question>[!!!] Permissions were updated! Please check if they fit your expectations!</question>');
|
||||||
|
|
||||||
if (!empty($this->admin_pw)) {
|
if (!empty($this->admin_pw)) {
|
||||||
$this->write('');
|
$this->logger->warning('');
|
||||||
$this->write('<bg=yellow;fg=black>The initial password for the "admin" user is: ' . $this->admin_pw . '</>');
|
$this->logger->warning('<bg=yellow;fg=black>The initial password for the "admin" user is: ' . $this->admin_pw . '</>');
|
||||||
|
$this->logger->warning('');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,16 +90,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"doctrine/doctrine-migrations-bundle": {
|
"doctrine/doctrine-migrations-bundle": {
|
||||||
"version": "1.2",
|
"version": "2.2",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"repo": "github.com/symfony/recipes",
|
"repo": "github.com/symfony/recipes",
|
||||||
"branch": "master",
|
"branch": "master",
|
||||||
"version": "1.2",
|
"version": "2.2",
|
||||||
"ref": "c1431086fec31f17fbcfe6d6d7e92059458facc1"
|
"ref": "baaa439e3e3179e69e3da84b671f0a3e4a2f56ad"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"./config/packages/doctrine_migrations.yaml",
|
"./config/packages/doctrine_migrations.yaml",
|
||||||
"./src/Migrations/.gitignore"
|
"./migrations/.gitignore"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"doctrine/event-manager": {
|
"doctrine/event-manager": {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue