2017-01-27 10:44:04 +00:00
< ? php
namespace Application\Migrations ;
use Doctrine\DBAL\Migrations\AbstractMigration ;
use Doctrine\DBAL\Schema\Schema ;
use Symfony\Component\DependencyInjection\ContainerAwareInterface ;
use Symfony\Component\DependencyInjection\ContainerInterface ;
/**
2017-04-13 10:57:31 +00:00
* Added indexes on wallabag_entry . is_starred and wallabag_entry . is_archived .
2017-01-27 10:44:04 +00:00
*/
class Version20170127093841 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @ var ContainerInterface
*/
private $container ;
private $indexStarredName = 'IDX_entry_starred' ;
private $indexArchivedName = 'IDX_entry_archived' ;
public function setContainer ( ContainerInterface $container = null )
{
$this -> container = $container ;
}
/**
* @ param Schema $schema
*/
public function up ( Schema $schema )
{
$entryTable = $schema -> getTable ( $this -> getTable ( 'entry' ));
2017-01-27 11:10:52 +00:00
$this -> skipIf ( $entryTable -> hasIndex ( $this -> indexStarredName ) && $entryTable -> hasIndex ( $this -> indexArchivedName ), 'It seems that you already played this migration.' );
2017-01-27 10:44:04 +00:00
$entryTable -> addIndex ([ 'is_starred' ], $this -> indexStarredName );
$entryTable -> addIndex ([ 'is_archived' ], $this -> indexArchivedName );
}
/**
* @ param Schema $schema
*/
public function down ( Schema $schema )
{
$entryTable = $schema -> getTable ( $this -> getTable ( 'entry' ));
2017-01-27 11:10:52 +00:00
$this -> skipIf ( false === $entryTable -> hasIndex ( $this -> indexStarredName ) && false === $entryTable -> hasIndex ( $this -> indexArchivedName ), 'It seems that you already played this migration.' );
2017-01-27 10:44:04 +00:00
$entryTable -> dropIndex ( $this -> indexStarredName );
$entryTable -> dropIndex ( $this -> indexArchivedName );
}
2017-07-01 07:52:38 +00:00
private function getTable ( $tableName )
{
return $this -> container -> getParameter ( 'database_table_prefix' ) . $tableName ;
}
2017-01-27 10:44:04 +00:00
}