migrations/Security/Version20200227135219_Token.php line 1
<?php
declare(strict_types=1);
namespace DoctrineMigrations\Security;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20200227135219_Token extends AbstractMigration
{
public function getDescription(): string
{
return 'Create tokens table';
}
public function up(Schema $schema): void
{
$this->addSql("CREATE TABLE public.token (
id SERIAL PRIMARY KEY,
value CHARACTER VARYING NOT NULL,
user_id INTEGER REFERENCES public.user (id),
account_id INTEGER REFERENCES public.user_account (id),
passport_id INTEGER REFERENCES public.user_passport (id),
expired BOOLEAN NOT NULL DEFAULT FALSE,
created_at TIMESTAMP(0) WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP(0) WITH TIME ZONE,
CONSTRAINT token_value_key UNIQUE (value),
CONSTRAINT token_xor_verifiable CHECK (
(user_id IS NOT NULL AND account_id IS NULL AND passport_id IS NULL) OR
(user_id IS NULL AND account_id IS NOT NULL AND passport_id IS NULL) OR
(user_id IS NULL AND account_id IS NULL AND passport_id IS NOT NULL)
)
)");
$this->addSql("CREATE INDEX token_user_id_idx ON public.token (user_id)");
$this->addSql("CREATE INDEX token_account_id_idx ON public.token (account_id)");
$this->addSql("CREATE INDEX token_passport_id_idx ON public.token (passport_id)");
}
public function down(Schema $schema): void
{
$this->addSql("DROP TABLE IF EXISTS public.token");
}
}