]> git.immae.eu Git - github/wallabag/wallabag.git/blame - app/DoctrineMigrations/Version20161024212538.php
Add index on starred entries
[github/wallabag/wallabag.git] / app / DoctrineMigrations / Version20161024212538.php
CommitLineData
23406ca3
NL
1<?php
2
3namespace Application\Migrations;
4
23406ca3 5use Doctrine\DBAL\Schema\Schema;
bfe7a692 6use Wallabag\CoreBundle\Doctrine\WallabagMigration;
23406ca3 7
b87f1712 8/**
01736b5a 9 * Added user_id column on oauth2_clients to prevent users to delete API clients from other users.
b87f1712 10 */
bfe7a692 11class Version20161024212538 extends WallabagMigration
23406ca3 12{
4acbeb93
NL
13 private $constraintName = 'IDX_user_oauth_client';
14
23406ca3
NL
15 /**
16 * @param Schema $schema
17 */
18 public function up(Schema $schema)
19 {
84c6a48d 20 $clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
23406ca3 21
84c6a48d 22 $this->skipIf($clientsTable->hasColumn('user_id'), 'It seems that you already played this migration.');
18d7bc3a 23
4acbeb93 24 $clientsTable->addColumn('user_id', 'integer', ['notnull' => false]);
84c6a48d
NL
25
26 $clientsTable->addForeignKeyConstraint(
27 $this->getTable('user'),
65a8c6e1
NL
28 ['user_id'],
29 ['id'],
4acbeb93
NL
30 ['onDelete' => 'CASCADE'],
31 $this->constraintName
84c6a48d 32 );
23406ca3
NL
33 }
34
35 /**
36 * @param Schema $schema
37 */
38 public function down(Schema $schema)
39 {
4acbeb93
NL
40 $clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
41
42 $this->skipIf(!$clientsTable->hasColumn('user_id'), 'It seems that you already played this migration.');
43
44 $clientsTable->dropColumn('user_id', 'integer');
45
3ef055ce 46 if ('sqlite' !== $this->connection->getDatabasePlatform()->getName()) {
4acbeb93
NL
47 $clientsTable->removeForeignKey($this->constraintName);
48 }
23406ca3
NL
49 }
50}