migrations/Version20221213142520.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use App\Entity\Institute;
  5. use App\Entity\Municipal;
  6. use App\Entity\User;
  7. use Doctrine\DBAL\Schema\Schema;
  8. use Doctrine\Migrations\AbstractMigration;
  9. use Doctrine\ORM\EntityManager;
  10. use Doctrine\ORM\Exception\ORMException;
  11. use Doctrine\ORM\OptimisticLockException;
  12. use Symfony\Component\DependencyInjection\ContainerAwareInterface;
  13. use Symfony\Component\DependencyInjection\ContainerAwareTrait;
  14. /**
  15.  * Auto-generated Migration: Please modify to your needs!
  16.  */
  17. final class Version20221213142520 extends AbstractMigration implements ContainerAwareInterface
  18. {
  19.     use ContainerAwareTrait;
  20.     public function getDescription(): string
  21.     {
  22.         return '';
  23.     }
  24.     public function up(Schema $schema): void
  25.     {
  26.         // this up() migration is auto-generated, please modify it to your needs
  27.         $this->addSql('CREATE TABLE institute (id SERIAL NOT NULL, municipal_id INT DEFAULT NULL, created_by_id INT NOT NULL, removed_by_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, removed_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  28.         $this->addSql('CREATE INDEX IDX_CA55B5D07A79FFCF ON institute (municipal_id)');
  29.         $this->addSql('CREATE INDEX IDX_CA55B5D0B03A8386 ON institute (created_by_id)');
  30.         $this->addSql('CREATE INDEX IDX_CA55B5D02BD701DA ON institute (removed_by_id)');
  31.         $this->addSql('COMMENT ON TABLE institute IS \'Внутр.портал: Учреждения\'');
  32.         $this->addSql('COMMENT ON COLUMN institute.name IS \'Наименование\'');
  33.         $this->addSql('COMMENT ON COLUMN institute.removed_at IS \'Когда удалено\'');
  34.         $this->addSql('ALTER TABLE institute ADD CONSTRAINT FK_CA55B5D07A79FFCF FOREIGN KEY (municipal_id) REFERENCES municipal (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  35.         $this->addSql('ALTER TABLE institute ADD CONSTRAINT FK_CA55B5D0B03A8386 FOREIGN KEY (created_by_id) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  36.         $this->addSql('ALTER TABLE institute ADD CONSTRAINT FK_CA55B5D02BD701DA FOREIGN KEY (removed_by_id) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  37.     }
  38.     /**
  39.      * @throws OptimisticLockException
  40.      * @throws ORMException
  41.      */
  42.     public function postUp(Schema $schema): void
  43.     {
  44.         $municipalsIndexed = [];
  45.         /* @var EntityManager $em */
  46.         $em $this->container->get('doctrine')->getManager();
  47.         $municipals $em->getRepository(Municipal::class)->findAll();
  48.         foreach ($municipals as $municipal) {
  49.             $municipalsIndexed[$municipal->getName()] = $municipal;
  50.         }
  51.         $user $em->getRepository(User::class)->findOneBy(['email' => 'admin@etton.ru']);
  52.         $data = [
  53.             'Азнакаевский' => ['МБУ Спортивная школа"Сокол" Азнакаевского МР'],
  54.             'Аксубаевский' => ['МБУ Спортивная школа Аксубаевского МР'],
  55.             'Актанышский' => [
  56.                 'МАУ Спортивная школа "Лачын" Актанышского МР',
  57.                 'МАУ Спортивная школа Актанышского МР',
  58.             ],
  59.             'Алексеевский' => ['МБУ Спортивная школа Алексеевского района'],
  60.             'Алькеевский' => ['МБУ СШ Алькеевского МР'],
  61.             'Альметьевский' => ['МБУ СШОР'],
  62.             'Апастовский' => ['МБУ СШ Апастовского МР РТ'],
  63.             'Арский' => ['МБУ СШ "Арча" Арского МР РТ'],
  64.             'Атнинский' => ['МБУ СШ Атнинского МР РТ'],
  65.             'Балтасинский' => ['МБУ СШ Балтасинского МР РТ'],
  66.             'Дрожжановский' => ['МБО "Спортивная школа"'],
  67.             'Елабужский' => [
  68.                 'МБУ СШ № 1 Елабужского МР РТ',
  69.                 'МБУ СШ № 2 Елабужского МР РТ'
  70.             ],
  71.             'Заинский' => ['МБУ СШ "Яшьлек"'],
  72.             'Зеленодольский' => ['МАУ СШ "Ледокол" Зеленодольского МР'],
  73.             'Кайбицкий' => ['МБО Спортивная школа Кайбицкого МР'],
  74.             'Камско-Устьинский' => ['МБУ Спортивная школа Камско-Устьинского МР'],
  75.             'Кукморский' => ['МБУ Спортивная школа "Зилант"'],
  76.             'Лаишевский' => ['МБУ "Спортивная школа по хоккею и фигурному катанию" Лаишевского МР'],
  77.             'Лениногорский' => ['МБО "Спортивная школа № 1" Лениногорского МР'],
  78.             'Нижнекамский' => ['МБУ СШ № 1 Нижнекамского МР'],
  79.             'Новошешминский' => ['МБУ СШ Новошешминского МР'],
  80.             'Нурлатский' => ['МБУ Спортивная школа им. Г.С.Хусаинова'],
  81.             'Пестречинский' => ['МБУ КСШ Пестречинского МР РТ'],
  82.             'Тетюшский' => ['    МБУ Спортивная школа Тетюшского МР'],
  83.             'Тукаевский' => ['МБУ СШ Тукаевского МР РТ'],
  84.             'Тюлячинский' => ['МБУ СШ "Тюлячи"'],
  85.             'Черемшанский' => ['МБУ СШ "Черемшан"'],
  86.             'Чистопольский' => ['МБУ Спортивная школа борьбы "Батыр"'],
  87.             'г.Набережные Челны' => [
  88.                 'МБУ СШ "Челны"',
  89.                 'МАУ СШОР № 12',
  90.                 'МАУ СШОР "Олимпийский"',
  91.                 'МАУ СШ "Виктория"',
  92.                 'МАУ СШ № 10',
  93.             ],
  94.             'г.Казань' => [
  95.                 'МБУ СШОР ФСО "Ракета"',
  96.                 'МБУ СШ Вахитовского района г. Казани',
  97.                 'МБУ СШОР ФСО "Центральный"',
  98.                 'МБУ СШОР ФСО "Идель"',
  99.                 'МБУ СШ "УНИКС-ЮНИОР" г. Казани',
  100.                 'МБУ СШ "Смена" г. Казани',
  101.                 'МБУ СШОР "ВГВС" г. Казани',
  102.                 'МАУ СШОР "ФСО "Авиатор"',
  103.             ],
  104.             'Республиканские учреждения' => [
  105.                 'ГАУ РСШОР по фехтованию',
  106.                 'ГБУ РСШОР по фигурному катанию на коньках и шорт-треку',
  107.                 'ГАУ РСШОР по шахматам, шашкам, го им. Р.Г.Нежметдинова',
  108.                 'ГАУ РСШОР "Батыр"',
  109.                 'ГБУ РСШ по конному спорту',
  110.                 'ГАУ РСШ по борьбе',
  111.                 'ГБУ РСШОР по стендовой и пулевой стрельбе',
  112.                 'ГАУ РСШОР "Динамо"',
  113.                 'ГБУ РСШОР по водным видам спорта "Акватика"',
  114.                 'ГБУ РСАШ',
  115.                 'ГБУ РСШ по зимним видам спорта "Барс"',
  116.                 'ГБУ РСШ по бадминтону им. Ф.Г.Валеева',
  117.                 'ГБУ РСШ по регби',
  118.             ]
  119.         ];
  120.         foreach ($data as $municipalName => $institutes) {
  121.             foreach ($institutes as $instituteName) {
  122.                 if (!array_key_exists($municipalName$municipalsIndexed)) {
  123.                     continue;
  124.                 }
  125.                 $municipal $municipalsIndexed[$municipalName];
  126.                 $institute = new Institute();
  127.                 $institute->setCreatedBy($user);
  128.                 $institute->setName($instituteName);
  129.                 $institute->setMunicipal($municipal);
  130.                 $em->persist($institute);
  131.             }
  132.         }
  133.         $em->flush();
  134.     }
  135.     public function down(Schema $schema): void
  136.     {
  137.         // this down() migration is auto-generated, please modify it to your needs
  138.         $this->addSql('ALTER TABLE institute DROP CONSTRAINT FK_CA55B5D07A79FFCF');
  139.         $this->addSql('ALTER TABLE institute DROP CONSTRAINT FK_CA55B5D0B03A8386');
  140.         $this->addSql('ALTER TABLE institute DROP CONSTRAINT FK_CA55B5D02BD701DA');
  141.         $this->addSql('DROP TABLE institute');
  142.     }
  143. }