forked from wallabag/wallabag
Move migrations
This commit is contained in:
45
migrations/Version20161024212538.php
Normal file
45
migrations/Version20161024212538.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Wallabag\Doctrine\WallabagMigration;
|
||||
|
||||
/**
|
||||
* Added user_id column on oauth2_clients to prevent users to delete API clients from other users.
|
||||
*/
|
||||
class Version20161024212538 extends WallabagMigration
|
||||
{
|
||||
private $constraintName = 'IDX_user_oauth_client';
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
|
||||
|
||||
$this->skipIf($clientsTable->hasColumn('user_id'), 'It seems that you already played this migration.');
|
||||
|
||||
$clientsTable->addColumn('user_id', 'integer', ['notnull' => false]);
|
||||
|
||||
$clientsTable->addForeignKeyConstraint(
|
||||
$this->getTable('user'),
|
||||
['user_id'],
|
||||
['id'],
|
||||
['onDelete' => 'CASCADE'],
|
||||
$this->constraintName
|
||||
);
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
|
||||
|
||||
$this->skipIf(!$clientsTable->hasColumn('user_id'), 'It seems that you already played this migration.');
|
||||
|
||||
$clientsTable->dropColumn('user_id', 'integer');
|
||||
|
||||
if (!$this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
$clientsTable->removeForeignKey($this->constraintName);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user