2016-04-10 19:48:11 +00:00
< ? php
namespace Application\Migrations ;
use Doctrine\DBAL\Migrations\AbstractMigration ;
use Doctrine\DBAL\Schema\Schema ;
2016-04-15 11:42:13 +00:00
use Symfony\Component\DependencyInjection\ContainerAwareInterface ;
use Symfony\Component\DependencyInjection\ContainerInterface ;
2016-04-10 19:48:11 +00:00
2016-04-15 11:42:13 +00:00
class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
2016-04-10 19:48:11 +00:00
{
2016-04-15 11:42:13 +00:00
/**
* @ var ContainerInterface
*/
private $container ;
public function setContainer ( ContainerInterface $container = null )
{
$this -> container = $container ;
}
2016-08-24 19:38:26 +00:00
private function getTable ( $tableName )
{
return $this -> container -> getParameter ( 'database_table_prefix' ) . $tableName ;
}
2016-04-10 19:48:11 +00:00
/**
* @ param Schema $schema
*/
public function up ( Schema $schema )
{
2016-10-09 19:35:04 +00:00
if ( $this -> connection -> getDatabasePlatform () -> getName () == 'postgresql' ) {
$this -> addSql ( 'ALTER TABLE "' . $this -> getTable ( 'entry' ) . '" ADD uuid UUID DEFAULT NULL' );
} else {
$this -> addSql ( 'ALTER TABLE "' . $this -> getTable ( 'entry' ) . '" ADD uuid LONGTEXT DEFAULT NULL' );
}
$this -> addSql ( " INSERT INTO \" " . $this -> getTable ( 'craue_config_setting' ) . " \" (name, value, section) VALUES ('share_public', '1', 'entry') " );
2016-04-18 20:45:52 +00:00
}
2016-04-15 11:42:13 +00:00
2016-04-10 19:48:11 +00:00
/**
* @ param Schema $schema
*/
public function down ( Schema $schema )
{
2016-04-18 20:45:52 +00:00
$this -> abortIf ( $this -> connection -> getDatabasePlatform () -> getName () != 'sqlite' , 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.' );
2016-08-24 19:38:26 +00:00
2016-10-09 19:35:04 +00:00
$this -> addSql ( 'ALTER TABLE "' . $this -> getTable ( 'entry' ) . '" DROP uuid' );
$this -> addSql ( " DELETE FROM \" " . $this -> getTable ( 'craue_config_setting' ) . " \" WHERE name = 'share_public' " );
2016-04-10 19:48:11 +00:00
}
}