Completed
Push — master ( fdbeef...265a2d )
by jerome
21:34
created

Version20141208094623::updateDefaultData()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 14
rs 9.4285
cc 1
eloc 4
nc 1
nop 0
1
<?php
2
3
/**
4
 * This file is part of Dedipanel project
5
 *
6
 * (c) 2010-2015 Dedipanel <http://www.dedicated-panel.net>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace DP\Core\DistributionBundle\Migrations;
13
14
use Doctrine\DBAL\Migrations\AbstractMigration;
15
use Doctrine\DBAL\Schema\Schema;
16
17
class Version20141208094623 extends AbstractMigration
18
{
19
    public function up(Schema $schema)
20
    {
21
        // this up() migration is auto-generated, please modify it to your needs
22
        $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');
23
24
        // Dropping old acl tables
25
        $this->addSql('ALTER TABLE acl_entries DROP FOREIGN KEY FK_46C8B806EA000B10');
26
        $this->addSql('ALTER TABLE acl_entries DROP FOREIGN KEY FK_46C8B8063D9AB4A6');
27
        $this->addSql('ALTER TABLE acl_entries DROP FOREIGN KEY FK_46C8B806DF9183C9');
28
        $this->addSql('ALTER TABLE acl_object_identities DROP FOREIGN KEY FK_9407E54977FA751A');
29
        $this->addSql('ALTER TABLE acl_object_identity_ancestors DROP FOREIGN KEY FK_825DE299C671CEA1');
30
        $this->addSql('ALTER TABLE acl_object_identity_ancestors DROP FOREIGN KEY FK_825DE2993D9AB4A6');
31
        $this->addSql('DROP TABLE acl_classes');
32
        $this->addSql('DROP TABLE acl_entries');
33
        $this->addSql('DROP TABLE acl_object_identities');
34
        $this->addSql('DROP TABLE acl_object_identity_ancestors');
35
        $this->addSql('DROP TABLE acl_security_identities');
36
37
        // Renaming & creating new user/group table
38
        $this->addSql('RENAME TABLE fos_user_user TO user_table');
39
        $this->addSql('CREATE TABLE group_table (id INT AUTO_INCREMENT NOT NULL, parent_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, roles LONGTEXT NOT NULL COMMENT \'(DC2Type:array)\', root INT DEFAULT NULL, lvl INT NOT NULL, lft INT NOT NULL, rgt INT NOT NULL, UNIQUE INDEX UNIQ_A605A4215E237E06 (name), INDEX IDX_A605A421727ACA70 (parent_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
40
        $this->addSql('ALTER TABLE user_table ADD group_id INT DEFAULT NULL, ADD createdAt DATETIME DEFAULT NULL, ADD CONSTRAINT FK_14EB741EFE54D947 FOREIGN KEY (group_id) REFERENCES group_table (id), ADD INDEX IDX_14EB741EFE54D947 (group_id)');
41
        $this->addSql('ALTER TABLE group_table ADD CONSTRAINT FK_A605A421727ACA70 FOREIGN KEY (parent_id) REFERENCES group_table (id) ON DELETE CASCADE');
42
        // Replacing old index by new ones
43
        $this->addSql('CREATE UNIQUE INDEX UNIQ_14EB741E92FC23A8 ON user_table (username_canonical)');
44
        $this->addSql('CREATE UNIQUE INDEX UNIQ_14EB741EA0D96FBF ON user_table (email_canonical)');
45
        $this->addSql('DROP INDEX uniq_c560d76192fc23a8 ON user_table');
46
        $this->addSql('DROP INDEX uniq_c560d761a0d96fbf ON user_table');
47
        // Dropping old fos_user_{group,user_group} table
48
        $this->addSql('DROP TABLE fos_user_user_group');
49
        $this->addSql('DROP TABLE fos_user_group');
50
51
        // Updating existing tables
52
        $this->addSql('RENAME TABLE gameserver TO game_server');
53
        $this->addSql('ALTER TABLE game_server ADD core LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:simple_array)\', CHANGE installationstatus installation_status INT DEFAULT NULL');
54
        $this->addSql('ALTER TABLE machine DROP publicKey, CHANGE privateIp privateIp VARCHAR(15) NOT NULL, CHANGE home home VARCHAR(255) NOT NULL, CHANGE user username VARCHAR(16) NOT NULL, CHANGE privatekey privateKeyName VARCHAR(23) NOT NULL');
55
        $this->addSql('ALTER TABLE game CHANGE map map VARCHAR(40) DEFAULT NULL');
56
        $this->addSql('ALTER TABLE steam_server DROP core, DROP hltvPort');
57
        // Replacing old index by new ones
58
        $this->addSql('CREATE INDEX IDX_2758783E633EC4FD ON game_server (machineId)');
59
        $this->addSql('CREATE INDEX IDX_2758783EEC55B7A4 ON game_server (gameId)');
60
        $this->addSql('DROP INDEX idx_e26640e5633ec4fd ON game_server');
61
        $this->addSql('DROP INDEX idx_e26640e5ec55b7a4 ON game_server');
62
63
        // Creating the many-to-many join table between machine & group
64
        $this->addSql('CREATE TABLE machine_to_groups (machine_id INT NOT NULL, group_id INT NOT NULL, INDEX IDX_C2750E6EF6B75B26 (machine_id), INDEX IDX_C2750E6EFE54D947 (group_id), PRIMARY KEY(machine_id, group_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
65
        $this->addSql('ALTER TABLE machine_to_groups ADD CONSTRAINT FK_C2750E6EF6B75B26 FOREIGN KEY (machine_id) REFERENCES machine (id)');
66
        $this->addSql('ALTER TABLE machine_to_groups ADD CONSTRAINT FK_C2750E6EFE54D947 FOREIGN KEY (group_id) REFERENCES group_table (id)');
67
68
        // Adding voip & teamspeak tables
69
        $this->addSql('CREATE TABLE voip_server (id INT AUTO_INCREMENT NOT NULL, dir VARCHAR(64) NOT NULL, installation_status INT DEFAULT NULL, core LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:simple_array)\', machineId INT DEFAULT NULL, discr VARCHAR(255) NOT NULL, INDEX IDX_3F5E3DC5633EC4FD (machineId), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
70
        $this->addSql('CREATE TABLE voip_server_instance (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(32) NOT NULL, port INT NOT NULL, max_clients INT NOT NULL, installation_status INT DEFAULT NULL, core LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:simple_array)\', dir VARCHAR(64) NOT NULL, serverId INT DEFAULT NULL, discr VARCHAR(255) NOT NULL, INDEX IDX_6AED3879EE279FF (serverId), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
71
        $this->addSql('CREATE TABLE teamspeak_server_instance (id INT NOT NULL, instance_id INT NOT NULL, admin_token VARCHAR(255) NOT NULL, autostart TINYINT(1) NOT NULL, banner LONGTEXT DEFAULT NULL, password VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
72
        $this->addSql('CREATE TABLE teamspeak_server (id INT NOT NULL, query_port INT DEFAULT NULL, query_login VARCHAR(32) DEFAULT NULL, query_passwd VARCHAR(32) DEFAULT NULL, filetransfer_port INT DEFAULT NULL, voice_port INT DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
73
        $this->addSql('ALTER TABLE voip_server ADD CONSTRAINT FK_3F5E3DC5633EC4FD FOREIGN KEY (machineId) REFERENCES machine (id)');
74
        $this->addSql('ALTER TABLE voip_server_instance ADD CONSTRAINT FK_6AED3879EE279FF FOREIGN KEY (serverId) REFERENCES voip_server (id)');
75
        $this->addSql('ALTER TABLE teamspeak_server_instance ADD CONSTRAINT FK_4B1CC3D6BF396750 FOREIGN KEY (id) REFERENCES voip_server_instance (id) ON DELETE CASCADE');
76
        $this->addSql('ALTER TABLE teamspeak_server ADD CONSTRAINT FK_ACCB911EBF396750 FOREIGN KEY (id) REFERENCES voip_server (id) ON DELETE CASCADE');
77
78
        $this->updateDefaultData();
0 ignored issues
show
Unused Code introduced by
The call to the method DP\Core\DistributionBund...23::updateDefaultData() seems un-needed as the method has no side-effects.

PHP Analyzer performs a side-effects analysis of your code. A side-effect is basically anything that might be visible after the scope of the method is left.

Let’s take a look at an example:

class User
{
    private $email;

    public function getEmail()
    {
        return $this->email;
    }

    public function setEmail($email)
    {
        $this->email = $email;
    }
}

If we look at the getEmail() method, we can see that it has no side-effect. Whether you call this method or not, no future calls to other methods are affected by this. As such code as the following is useless:

$user = new User();
$user->getEmail(); // This line could safely be removed as it has no effect.

On the hand, if we look at the setEmail(), this method _has_ side-effects. In the following case, we could not remove the method call:

$user = new User();
$user->setEmail('email@domain'); // This line has a side-effect (it changes an
                                 // instance variable).
Loading history...
79
    }
80
81
    public function down(Schema $schema)
82
    {
83
        // this down() migration is auto-generated, please modify it to your needs
84
        $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');
85
86
        // Deleting voip & teamspeak tables
87
        $this->addSql('ALTER TABLE teamspeak_server DROP FOREIGN KEY FK_ACCB911EBF396750');
88
        $this->addSql('ALTER TABLE voip_server_instance DROP FOREIGN KEY FK_6AED3879EE279FF');
89
        $this->addSql('ALTER TABLE teamspeak_server_instance DROP FOREIGN KEY FK_4B1CC3D6BF396750');
90
        $this->addSql('DROP TABLE teamspeak_server');
91
        $this->addSql('DROP TABLE teamspeak_server_instance');
92
        $this->addSql('DROP TABLE voip_server');
93
        $this->addSql('DROP TABLE voip_server_instance');
94
95
        // Deleting the many-to-many join table between machine & group
96
        $this->addSql('DROP TABLE machine_to_groups');
97
98
        // Reverting updates of existing tables
99
        $this->addSql('ALTER TABLE game CHANGE map map VARCHAR(20) DEFAULT NULL');
100
        $this->addSql('ALTER TABLE machine ADD publicKey VARCHAR(255) DEFAULT NULL, CHANGE privateIp privateIp VARCHAR(15) DEFAULT NULL, CHANGE home home VARCHAR(255) DEFAULT NULL, CHANGE username user VARCHAR(16) NOT NULL, CHANGE privatekeyname privateKey VARCHAR(23) NOT NULL');
101
        $this->addSql('RENAME TABLE game_server TO gameserver');
102
        $this->addSql('ALTER TABLE gameserver DROP core, CHANGE installation_status installationStatus INT DEFAULT NULL');
103
        $this->addSql('ALTER TABLE gameserver_plugins DROP FOREIGN KEY FK_9B4F31881844E6B7');
104
        $this->addSql('ALTER TABLE gameserver_plugins ADD CONSTRAINT FK_9B4F31881844E6B7 FOREIGN KEY (server_id) REFERENCES gameserver (id)');
105
        $this->addSql('ALTER TABLE steam_server ADD core INT DEFAULT NULL, ADD hltvPort INT DEFAULT NULL');
106
107
        // Restoring old fos_user_{user,group,user_group} tables
108
        $this->addSql('ALTER TABLE user_table DROP FOREIGN KEY FK_14EB741EFE54D947');
109
        $this->addSql('ALTER TABLE group_table DROP FOREIGN KEY FK_A605A421727ACA70');
110
        $this->addSql('RENAME TABLE user_table TO fos_user_user');
111
        $this->addSql('ALTER TABLE fos_user_user DROP group_id, DROP createdAt, DROP INDEX IDX_14EB741EFE54D947');
112
        $this->addSql('CREATE TABLE fos_user_user_group (user_id INT NOT NULL, group_id INT NOT NULL, INDEX IDX_B3C77447A76ED395 (user_id), INDEX IDX_B3C77447FE54D947 (group_id), PRIMARY KEY(user_id, group_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
113
        $this->addSql('CREATE TABLE fos_user_group (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, roles LONGTEXT NOT NULL COMMENT \'(DC2Type:array)\', UNIQUE INDEX UNIQ_583D1F3E5E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
114
        $this->addSql('ALTER TABLE fos_user_user_group ADD CONSTRAINT FK_B3C77447A76ED395 FOREIGN KEY (user_id) REFERENCES fos_user_user (id) ON DELETE CASCADE');
115
        $this->addSql('ALTER TABLE fos_user_user_group ADD CONSTRAINT FK_B3C77447FE54D947 FOREIGN KEY (group_id) REFERENCES fos_user_group (id) ON DELETE CASCADE');
116
        $this->addSql('DROP TABLE group_table');
117
118
        // Restoring acl tables
119
        $this->addSql('CREATE TABLE acl_classes (id INT UNSIGNED AUTO_INCREMENT NOT NULL, class_type VARCHAR(200) NOT NULL, UNIQUE INDEX UNIQ_69DD750638A36066 (class_type), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
120
        $this->addSql('CREATE TABLE acl_security_identities (id INT UNSIGNED AUTO_INCREMENT NOT NULL, identifier VARCHAR(200) NOT NULL, username TINYINT(1) NOT NULL, UNIQUE INDEX UNIQ_8835EE78772E836AF85E0677 (identifier, username), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
121
        $this->addSql('CREATE TABLE acl_object_identities (id INT UNSIGNED AUTO_INCREMENT NOT NULL, parent_object_identity_id INT UNSIGNED DEFAULT NULL, class_id INT UNSIGNED NOT NULL, object_identifier VARCHAR(100) NOT NULL, entries_inheriting TINYINT(1) NOT NULL, UNIQUE INDEX UNIQ_9407E5494B12AD6EA000B10 (object_identifier, class_id), INDEX IDX_9407E54977FA751A (parent_object_identity_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
122
        $this->addSql('CREATE TABLE acl_object_identity_ancestors (object_identity_id INT UNSIGNED NOT NULL, ancestor_id INT UNSIGNED NOT NULL, INDEX IDX_825DE2993D9AB4A6 (object_identity_id), INDEX IDX_825DE299C671CEA1 (ancestor_id), PRIMARY KEY(object_identity_id, ancestor_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
123
        $this->addSql('CREATE TABLE acl_entries (id INT UNSIGNED AUTO_INCREMENT NOT NULL, class_id INT UNSIGNED NOT NULL, object_identity_id INT UNSIGNED DEFAULT NULL, security_identity_id INT UNSIGNED NOT NULL, field_name VARCHAR(50) DEFAULT NULL, ace_order SMALLINT UNSIGNED NOT NULL, mask INT NOT NULL, granting TINYINT(1) NOT NULL, granting_strategy VARCHAR(30) NOT NULL, audit_success TINYINT(1) NOT NULL, audit_failure TINYINT(1) NOT NULL, UNIQUE INDEX UNIQ_46C8B806EA000B103D9AB4A64DEF17BCE4289BF4 (class_id, object_identity_id, field_name, ace_order), INDEX IDX_46C8B806EA000B103D9AB4A6DF9183C9 (class_id, object_identity_id, security_identity_id), INDEX IDX_46C8B806EA000B10 (class_id), INDEX IDX_46C8B8063D9AB4A6 (object_identity_id), INDEX IDX_46C8B806DF9183C9 (security_identity_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
124
        // Restoring foreign keys
125
        $this->addSql('ALTER TABLE acl_entries ADD CONSTRAINT FK_46C8B806EA000B10 FOREIGN KEY (class_id) REFERENCES acl_classes (id) ON UPDATE CASCADE ON DELETE CASCADE');
126
        $this->addSql('ALTER TABLE acl_entries ADD CONSTRAINT FK_46C8B8063D9AB4A6 FOREIGN KEY (object_identity_id) REFERENCES acl_object_identities (id) ON UPDATE CASCADE ON DELETE CASCADE');
127
        $this->addSql('ALTER TABLE acl_entries ADD CONSTRAINT FK_46C8B806DF9183C9 FOREIGN KEY (security_identity_id) REFERENCES acl_security_identities (id) ON UPDATE CASCADE ON DELETE CASCADE');
128
        $this->addSql('ALTER TABLE acl_object_identities ADD CONSTRAINT FK_9407E54977FA751A FOREIGN KEY (parent_object_identity_id) REFERENCES acl_object_identities (id)');
129
        $this->addSql('ALTER TABLE acl_object_identity_ancestors ADD CONSTRAINT FK_825DE2993D9AB4A6 FOREIGN KEY (object_identity_id) REFERENCES acl_object_identities (id) ON UPDATE CASCADE ON DELETE CASCADE');
130
        $this->addSql('ALTER TABLE acl_object_identity_ancestors ADD CONSTRAINT FK_825DE299C671CEA1 FOREIGN KEY (ancestor_id) REFERENCES acl_object_identities (id) ON UPDATE CASCADE ON DELETE CASCADE');
131
    }
132
133
    public function updateDefaultData()
134
    {
135
        $sql = <<<EOF
0 ignored issues
show
Unused Code introduced by
$sql is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
136
LOCK TABLES `group_table` WRITE;
137
INSERT INTO `group_table` VALUES (1,NULL,'Default Group','a:35:{i:0;s:24:\"ROLE_DP_GAME_STEAM_ADMIN\";i:1;s:24:\"ROLE_DP_GAME_STEAM_INDEX\";i:2;s:23:\"ROLE_DP_GAME_STEAM_SHOW\";i:3;s:25:\"ROLE_DP_GAME_STEAM_CREATE\";i:4;s:25:\"ROLE_DP_GAME_STEAM_UPDATE\";i:5;s:25:\"ROLE_DP_GAME_STEAM_DELETE\";i:6;s:24:\"ROLE_DP_GAME_STEAM_STATE\";i:7;s:23:\"ROLE_DP_GAME_STEAM_RCON\";i:8;s:25:\"ROLE_DP_GAME_STEAM_PLUGIN\";i:9;s:22:\"ROLE_DP_GAME_STEAM_FTP\";i:10;s:9:\"ROLE_USER\";i:11;s:28:\"ROLE_DP_GAME_MINECRAFT_ADMIN\";i:12;s:28:\"ROLE_DP_GAME_MINECRAFT_INDEX\";i:13;s:27:\"ROLE_DP_GAME_MINECRAFT_SHOW\";i:14;s:29:\"ROLE_DP_GAME_MINECRAFT_CREATE\";i:15;s:29:\"ROLE_DP_GAME_MINECRAFT_UPDATE\";i:16;s:29:\"ROLE_DP_GAME_MINECRAFT_DELETE\";i:17;s:28:\"ROLE_DP_GAME_MINECRAFT_STATE\";i:18;s:27:\"ROLE_DP_GAME_MINECRAFT_RCON\";i:19;s:29:\"ROLE_DP_GAME_MINECRAFT_PLUGIN\";i:20;s:26:\"ROLE_DP_GAME_MINECRAFT_FTP\";i:21;s:28:\"ROLE_DP_VOIP_TEAMSPEAK_ADMIN\";i:22;s:37:\"ROLE_DP_VOIP_TEAMSPEAK_INSTANCE_ADMIN\";i:23;s:28:\"ROLE_DP_VOIP_TEAMSPEAK_INDEX\";i:24;s:27:\"ROLE_DP_VOIP_TEAMSPEAK_SHOW\";i:25;s:29:\"ROLE_DP_VOIP_TEAMSPEAK_CREATE\";i:26;s:29:\"ROLE_DP_VOIP_TEAMSPEAK_UPDATE\";i:27;s:29:\"ROLE_DP_VOIP_TEAMSPEAK_DELETE\";i:28;s:28:\"ROLE_DP_VOIP_TEAMSPEAK_STATE\";i:29;s:37:\"ROLE_DP_VOIP_TEAMSPEAK_INSTANCE_INDEX\";i:30;s:36:\"ROLE_DP_VOIP_TEAMSPEAK_INSTANCE_SHOW\";i:31;s:38:\"ROLE_DP_VOIP_TEAMSPEAK_INSTANCE_CREATE\";i:32;s:38:\"ROLE_DP_VOIP_TEAMSPEAK_INSTANCE_UPDATE\";i:33;s:38:\"ROLE_DP_VOIP_TEAMSPEAK_INSTANCE_DELETE\";i:34;s:37:\"ROLE_DP_VOIP_TEAMSPEAK_INSTANCE_STATE\";}',1,0,1,2);
138
UNLOCK TABLES;
139
140
LOCK TABLES `plugin` WRITE;
141
UPDATE `plugin` SET downloadUrl = 'http://sourcemod.gameconnect.net/files/mmsource-1.10.4-linux.tar.gz', version = '1.10.4' WHERE name = 'Metamod:Source';
142
UPDATE `plugin` SET downloadUrl = 'http://www.sourcemod.net/dl.php?filename=sourcemod-1.6.3-linux.tar.gz', version = '1.6.3', name = 'SourceMod' WHERE name = 'Sourcemod';
143
UNLOCK TABLES;
144
EOF;
145
146
    }
147
}
148