zend-blog-3-backend

Форк
0
/
Version20230626144738.php 
79 строк · 2.5 Кб
1
<?php
2

3
declare(strict_types=1);
4

5
namespace Application\Migrations;
6

7
use Doctrine\DBAL\Schema\Schema;
8
use Doctrine\Migrations\AbstractMigration;
9
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
10
use Symfony\Component\DependencyInjection\ContainerInterface;
11

12
/**
13
 * Auto-generated Migration: Please modify to your needs!
14
 */
15
final class Version20230626144738 extends AbstractMigration implements ContainerAwareInterface
16
{
17
    /**
18
     * @var ContainerInterface
19
     */
20
    protected $container;
21

22
    /**
23
     * @param ContainerInterface|null $container
24
     */
25
    public function setContainer(ContainerInterface $container = null)
26
    {
27
        $this->container = $container;
28
    }
29

30
    public 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

39
    public 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
     */
51
    public function postUp(Schema $schema): void
52
    {
53
        parent::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
     */
67
    public function postDown(Schema $schema): void
68
    {
69
        parent::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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.