Passed
Pull Request — master (#5585)
by
unknown
07:40
created

Version20240611153000::down()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 10
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 19
rs 9.9332
1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Migrations\Schema\V200;
8
9
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
10
use Doctrine\DBAL\Schema\Schema;
11
12
final class Version20240611153000 extends AbstractMigrationChamilo
13
{
14
    public function getDescription(): string
15
    {
16
        return 'Update collation for specific columns in c_announcement, message, and notification tables to utf8mb4';
17
    }
18
19
    public function up(Schema $schema): void
20
    {
21
        // Change collation for c_announcement table
22
        $this->addSql('ALTER TABLE c_announcement CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
23
        $this->addSql('ALTER TABLE c_announcement CHANGE title title TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL');
24
        $this->addSql('ALTER TABLE c_announcement CHANGE content content LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL');
25
26
        // Change collation for message table
27
        $this->addSql('ALTER TABLE message CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
28
        $this->addSql('ALTER TABLE message CHANGE title title VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL');
29
        $this->addSql('ALTER TABLE message CHANGE content content LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL');
30
31
        // Change collation for notification table
32
        $this->addSql('ALTER TABLE notification CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
33
        $this->addSql('ALTER TABLE notification CHANGE title title VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL');
34
        $this->addSql('ALTER TABLE notification CHANGE content content LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL');
35
36
        // Change collation for dest_mail column in notification table
37
        $this->addSql('ALTER TABLE notification CHANGE dest_mail dest_mail VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL');
38
    }
39
40
    public function down(Schema $schema): void
41
    {
42
        // Revert collation for c_announcement table
43
        $this->addSql('ALTER TABLE c_announcement CONVERT TO CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci');
44
        $this->addSql('ALTER TABLE c_announcement CHANGE title title TEXT CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL');
45
        $this->addSql('ALTER TABLE c_announcement CHANGE content content LONGTEXT CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL');
46
47
        // Revert collation for message table
48
        $this->addSql('ALTER TABLE message CONVERT TO CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci');
49
        $this->addSql('ALTER TABLE message CHANGE title title VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL');
50
        $this->addSql('ALTER TABLE message CHANGE content content LONGTEXT CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL');
51
52
        // Revert collation for notification table
53
        $this->addSql('ALTER TABLE notification CONVERT TO CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci');
54
        $this->addSql('ALTER TABLE notification CHANGE title title VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL');
55
        $this->addSql('ALTER TABLE notification CHANGE content content LONGTEXT CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL');
56
57
        // Revert collation for dest_mail column in notification table
58
        $this->addSql('ALTER TABLE notification CHANGE dest_mail dest_mail VARCHAR(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL');
59
    }
60
}
61