migrations/Identity/Version20200227105602_UserAccount.php line 1

  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations\Identity;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20200227105602_UserAccount extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'Add account table';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         $this->addSql("CREATE TABLE user_account (
  18.             id                      SERIAL PRIMARY KEY,
  19.             user_id                 INTEGER                     NOT NULL REFERENCES public.user (id),
  20.             slug                    CHARACTER VARYING           NOT NULL,
  21.             provider                CHARACTER VARYING(255)      NOT NULL,
  22.             account_id              CHARACTER VARYING(255)      NOT NULL,
  23.             data                    JSONB                       NOT NULL,
  24.             created_at              TIMESTAMP(0) WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
  25.             updated_at              TIMESTAMP(0) WITH TIME ZONE,
  26.             deleted_at              TIMESTAMP(0) WITH TIME ZONE,
  27.             CONSTRAINT user_account_slug_key UNIQUE (slug),
  28.             CONSTRAINT user_account_compound_id_key UNIQUE (provider, account_id)
  29.         )");
  30.         $this->addSql("CREATE INDEX user_account_user_id_idx ON user_account (user_id)");
  31.         $this->addSql("CREATE INDEX user_account_provider_idx ON user_account (provider)");
  32.         $this->addSql("CREATE INDEX user_account_account_id_idx ON user_account (account_id)");
  33.     }
  34.     public function down(Schema $schema): void
  35.     {
  36.         $this->addSql('DROP TABLE IF EXISTS user_account');
  37.     }
  38. }