zend-blog-3-backend
79 строк · 2.5 Кб
1<?php
2
3declare(strict_types=1);
4
5namespace Application\Migrations;
6
7use Doctrine\DBAL\Schema\Schema;
8use Doctrine\Migrations\AbstractMigration;
9use Symfony\Component\DependencyInjection\ContainerAwareInterface;
10use Symfony\Component\DependencyInjection\ContainerInterface;
11
12/**
13* Auto-generated Migration: Please modify to your needs!
14*/
15final class Version20230626144738 extends AbstractMigration implements ContainerAwareInterface
16{
17/**
18* @var ContainerInterface
19*/
20protected $container;
21
22/**
23* @param ContainerInterface|null $container
24*/
25public function setContainer(ContainerInterface $container = null)
26{
27$this->container = $container;
28}
29
30public function up(Schema $schema): void
31{
32// this up() migration is auto-generated, please modify it to your needs
33$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
34
35$this->addSql('ALTER TABLE commentators ADD fake_email TINYINT(1) DEFAULT NULL, ADD email_check DATETIME DEFAULT NULL');
36$this->addSql('DROP VIEW IF EXISTS `v_commentators`');
37}
38
39public function down(Schema $schema): void
40{
41// this down() migration is auto-generated, please modify it to your needs
42$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
43
44$this->addSql('ALTER TABLE commentators DROP fake_email, DROP email_check');
45$this->addSql('DROP VIEW IF EXISTS `v_commentators`');
46}
47
48/**
49* @param Schema $schema
50*/
51public function postUp(Schema $schema): void
52{
53parent::postUp($schema);
54
55$sql = file_get_contents(__DIR__ . '/sql/view_commentators_03.sql');
56
57$em = $this->container->get('doctrine.orm.entity_manager');
58$stmt = $em->getConnection()->prepare($sql);
59$stmt->executeQuery();
60
61$this->write(' <comment>-></comment> CREATE VIEW `v_commentators`');
62}
63
64/**
65* @param Schema $schema
66*/
67public function postDown(Schema $schema): void
68{
69parent::postDown($schema);
70
71$sql = file_get_contents(__DIR__ . '/sql/view_commentators_02.sql');
72
73$em = $this->container->get('doctrine.orm.entity_manager');
74$stmt = $em->getConnection()->prepare($sql);
75$stmt->executeQuery();
76
77$this->write(' <comment>-></comment> CREATE VIEW `v_commentators`');
78}
79}
80