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 Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Wallabag\CoreBundle\Entity\Entry;
class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
{
@ -20,12 +19,17 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix') . $tableName;
}
/**
* @param 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)
{
$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\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
*/
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)
{
$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');
}
}