1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
|
5
|
|
|
namespace SWP\Migrations; |
6
|
|
|
|
7
|
|
|
use Doctrine\DBAL\Schema\Schema; |
8
|
|
|
use Doctrine\Migrations\AbstractMigration; |
9
|
|
|
|
10
|
|
|
/** |
11
|
|
|
* Auto-generated Migration: Please modify to your needs! |
12
|
|
|
*/ |
13
|
|
|
final class Version20210119142827 extends AbstractMigration |
14
|
|
|
{ |
15
|
|
View Code Duplication |
public function up(Schema $schema) : void |
|
|
|
|
16
|
|
|
{ |
17
|
|
|
// this up() migration is auto-generated, please modify it to your needs |
18
|
|
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql', 'Migration can only be executed safely on \'postgresql\'.'); |
19
|
|
|
|
20
|
|
|
$this->addSql('CREATE SEQUENCE swp_user_reset_password_request_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); |
21
|
|
|
$this->addSql('CREATE TABLE swp_user_reset_password_request (id INT NOT NULL, user_id INT NOT NULL, selector VARCHAR(20) NOT NULL, hashed_token VARCHAR(100) NOT NULL, requested_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, expires_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, PRIMARY KEY(id))'); |
22
|
|
|
$this->addSql('CREATE INDEX IDX_53CA7BFAA76ED395 ON swp_user_reset_password_request (user_id)'); |
23
|
|
|
$this->addSql('COMMENT ON COLUMN swp_user_reset_password_request.requested_at IS \'(DC2Type:datetime_immutable)\''); |
24
|
|
|
$this->addSql('COMMENT ON COLUMN swp_user_reset_password_request.expires_at IS \'(DC2Type:datetime_immutable)\''); |
25
|
|
|
$this->addSql('ALTER TABLE swp_user_reset_password_request ADD CONSTRAINT FK_53CA7BFAA76ED395 FOREIGN KEY (user_id) REFERENCES swp_user (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); |
26
|
|
|
$this->addSql('DROP INDEX uniq_7384fb3192fc23a8'); |
27
|
|
|
$this->addSql('DROP INDEX uniq_7384fb31a0d96fbf'); |
28
|
|
|
$this->addSql('ALTER TABLE swp_user DROP username_canonical'); |
29
|
|
|
$this->addSql('ALTER TABLE swp_user DROP email_canonical'); |
30
|
|
|
$this->addSql('ALTER TABLE swp_user DROP salt'); |
31
|
|
|
$this->addSql('ALTER TABLE swp_user DROP last_login'); |
32
|
|
|
$this->addSql('ALTER TABLE swp_user DROP password_requested_at'); |
33
|
|
|
$this->addSql('ALTER TABLE swp_user RENAME COLUMN enabled TO is_verified'); |
34
|
|
|
$this->addSql('CREATE UNIQUE INDEX UNIQ_7384FB31F85E0677 ON swp_user (username)'); |
35
|
|
|
$this->addSql('CREATE UNIQUE INDEX UNIQ_7384FB31E7927C74 ON swp_user (email)'); |
36
|
|
|
} |
37
|
|
|
|
38
|
|
|
public function down(Schema $schema) : void |
39
|
|
|
{ |
40
|
|
|
// this down() migration is auto-generated, please modify it to your needs |
41
|
|
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql', 'Migration can only be executed safely on \'postgresql\'.'); |
42
|
|
|
|
43
|
|
|
$this->addSql('DROP SEQUENCE swp_user_reset_password_request_id_seq CASCADE'); |
44
|
|
|
$this->addSql('DROP TABLE swp_user_reset_password_request'); |
45
|
|
|
$this->addSql('DROP INDEX UNIQ_7384FB31F85E0677'); |
46
|
|
|
$this->addSql('DROP INDEX UNIQ_7384FB31E7927C74'); |
47
|
|
|
$this->addSql('ALTER TABLE swp_user ADD username_canonical VARCHAR(180) NOT NULL'); |
48
|
|
|
$this->addSql('ALTER TABLE swp_user ADD email_canonical VARCHAR(180) NOT NULL'); |
49
|
|
|
$this->addSql('ALTER TABLE swp_user ADD salt VARCHAR(255) DEFAULT NULL'); |
50
|
|
|
$this->addSql('ALTER TABLE swp_user ADD last_login TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); |
51
|
|
|
$this->addSql('ALTER TABLE swp_user ADD password_requested_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); |
52
|
|
|
$this->addSql('ALTER TABLE swp_user RENAME COLUMN is_verified TO enabled'); |
53
|
|
|
$this->addSql('CREATE UNIQUE INDEX uniq_7384fb3192fc23a8 ON swp_user (username_canonical)'); |
54
|
|
|
$this->addSql('CREATE UNIQUE INDEX uniq_7384fb31a0d96fbf ON swp_user (email_canonical)'); |
55
|
|
|
} |
56
|
|
|
} |
57
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.