migrations/Version20230705102936.php line 1

Open in your IDE?
  1. <?php
  2. /* @noinspection PhpUnused */
  3. declare(strict_types=1);
  4. namespace DoctrineMigrations;
  5. use Doctrine\DBAL\Schema\Schema;
  6. use Doctrine\Migrations\AbstractMigration;
  7. /**
  8.  * Auto-generated Migration: Please modify to your needs!
  9.  *
  10.  * @package API
  11.  * @internal
  12.  */
  13. final class Version20230705102936 extends AbstractMigration
  14. {
  15.     public function down(Schema $schema): void
  16.     {
  17.         // this down() migration is auto-generated, please modify it to your needs
  18.         $this->addSql('ALTER TABLE role DROP FOREIGN KEY FK_57698A6AAFC2B591');
  19.         $this->addSql('ALTER TABLE user_role DROP FOREIGN KEY FK_2DE8C6A3A76ED395');
  20.         $this->addSql('ALTER TABLE user_role DROP FOREIGN KEY FK_2DE8C6A3D60322AC');
  21.         $this->addSql('ALTER TABLE user_scope DROP FOREIGN KEY FK_E26DAE8BA76ED395');
  22.         $this->addSql('ALTER TABLE user_scope DROP FOREIGN KEY FK_E26DAE8BAFC2B591');
  23.         $this->addSql('ALTER TABLE user_scope DROP FOREIGN KEY FK_E26DAE8B8BC224C3');
  24.         $this->addSql('DROP TABLE role');
  25.         $this->addSql('DROP TABLE user_role');
  26.         $this->addSql('DROP TABLE user_scope');
  27.     }
  28.     public function getDescription(): string
  29.     {
  30.         return
  31.             "- Introduces role table.\n" .
  32.             "- Introduces permission based relation table between users and roles.\n" .
  33.             "- Introduces permission based relation table between users, modules and organizational units.";
  34.     }
  35.     public function up(Schema $schema): void
  36.     {
  37.         // this up() migration is auto-generated, please modify it to your needs
  38.         $this->addSql(
  39.             '
  40.                 CREATE TABLE role (
  41.                     id VARCHAR(64) NOT NULL COMMENT \'Internal role ID\',
  42.                     name VARCHAR(225) NOT NULL COMMENT \'Name for role\',
  43.                     module_id VARCHAR(64) NOT NULL COMMENT \'Internal module ID\',
  44.                     INDEX IDX_57698A6AAFC2B591 (module_id),
  45.                     PRIMARY KEY(id)
  46.                 ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB
  47.             '
  48.         );
  49.         $this->addSql(
  50.             '
  51.                 CREATE TABLE user_role (
  52.                     user_id INT NOT NULL COMMENT \'Internal ID\',
  53.                     role_id VARCHAR(64) NOT NULL COMMENT \'Internal role ID\',
  54.                     INDEX IDX_2DE8C6A3A76ED395 (user_id),
  55.                     INDEX IDX_2DE8C6A3D60322AC (role_id),
  56.                     PRIMARY KEY(user_id, role_id)
  57.                 ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB
  58.             '
  59.         );
  60.         $this->addSql(
  61.             '
  62.                 CREATE TABLE user_scope (
  63.                     user_id INT NOT NULL COMMENT \'Internal ID\',
  64.                     module_id VARCHAR(64) NOT NULL COMMENT \'Internal module ID\',
  65.                     org_unit_id INT NOT NULL COMMENT \'Internal ID\',
  66.                     INDEX IDX_E26DAE8BA76ED395 (user_id),
  67.                     INDEX IDX_E26DAE8BAFC2B591 (module_id),
  68.                     INDEX IDX_E26DAE8B8BC224C3 (org_unit_id),
  69.                     PRIMARY KEY(user_id, module_id, org_unit_id)
  70.                 ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB;
  71.             '
  72.         );
  73.         $this->addSql(
  74.             '
  75.                 ALTER TABLE role ADD CONSTRAINT FK_57698A6AAFC2B591
  76.                     FOREIGN KEY (module_id) REFERENCES module (id)
  77.             '
  78.         );
  79.         $this->addSql(
  80.             '
  81.                 ALTER TABLE user_role ADD CONSTRAINT FK_2DE8C6A3A76ED395
  82.                     FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE
  83.             '
  84.         );
  85.         $this->addSql(
  86.             '
  87.                 ALTER TABLE user_role ADD CONSTRAINT FK_2DE8C6A3D60322AC
  88.                     FOREIGN KEY (role_id) REFERENCES role (id)
  89.             '
  90.         );
  91.         $this->addSql(
  92.             '
  93.                 ALTER TABLE user_scope ADD CONSTRAINT FK_E26DAE8BA76ED395
  94.                     FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE;
  95.             '
  96.         );
  97.         $this->addSql(
  98.             '
  99.                 ALTER TABLE user_scope ADD CONSTRAINT FK_E26DAE8BAFC2B591
  100.                     FOREIGN KEY (module_id) REFERENCES module (id);
  101.             '
  102.         );
  103.         $this->addSql(
  104.             '
  105.                 ALTER TABLE user_scope ADD CONSTRAINT FK_E26DAE8B8BC224C3
  106.                     FOREIGN KEY (org_unit_id) REFERENCES org_unit (id) ON DELETE CASCADE;
  107.             '
  108.         );
  109.     }
  110. }