Handle table prefix in migration

and fix migration for name field in oauth table
This commit is contained in:
Jeremy Benoist 2016-08-24 21:38:26 +02:00
parent 78b3c31d70
commit ad9304cd7e
No known key found for this signature in database
GPG Key ID: BCA73962457ACC3C
2 changed files with 29 additions and 7 deletions

View File

@ -6,7 +6,6 @@ use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
use Wallabag\CoreBundle\Entity\Entry;
class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
{ {
@ -20,12 +19,17 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
$this->container = $container; $this->container = $container;
} }
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix') . $tableName;
}
/** /**
* @param Schema $schema * @param Schema $schema
*/ */
public function up(Schema $schema) public function up(Schema $schema)
{ {
$this->addSql('ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL'); $this->addSql('ALTER TABLE `'.$this->getTable('entry').'` ADD `uuid` LONGTEXT DEFAULT NULL');
} }
/** /**
@ -34,6 +38,7 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
public function down(Schema $schema) public function down(Schema $schema)
{ {
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.'); $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.');
$this->addSql('ALTER TABLE `wallabag_entry` DROP `uuid`');
$this->addSql('ALTER TABLE `'.$this->getTable('entry').'` DROP `uuid`');
} }
} }

View File

@ -4,15 +4,32 @@ namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration; use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class Version20160812120952 extends AbstractMigration class Version20160812120952 extends AbstractMigration implements ContainerAwareInterface
{ {
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix') . $tableName;
}
/** /**
* @param Schema $schema * @param Schema $schema
*/ */
public function up(Schema $schema) public function up(Schema $schema)
{ {
$this->addSql('ALTER TABLE wallabag_oauth2_clients ADD name CLOB DEFAULT NULL COLLATE BINARY'); $this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext COLLATE \'utf8_unicode_ci\' DEFAULT NULL');
} }
/** /**
@ -21,7 +38,7 @@ class Version20160812120952 extends AbstractMigration
public function down(Schema $schema) public function down(Schema $schema)
{ {
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.'); $this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
$this->addSql('ALTER TABLE wallabag_oauth2_clients DROP COLUMN name;
'); $this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' DROP COLUMN name');
} }
} }