Conditions | 32 |
Paths | > 20000 |
Total Lines | 254 |
Code Lines | 120 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
19 | public function up(Schema $schema): void |
||
20 | { |
||
21 | if ($schema->hasTable('message_feedback')) { |
||
22 | $table = $schema->getTable('message_feedback'); |
||
23 | if ($table->hasForeignKey('FK_DB0F8049537A1329')) { |
||
24 | $this->addSql('ALTER TABLE message_feedback DROP FOREIGN KEY FK_DB0F8049537A1329'); |
||
25 | } |
||
26 | } |
||
27 | |||
28 | $table = $schema->getTable('message'); |
||
29 | $this->addSql('ALTER TABLE message CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE parent_id parent_id INT DEFAULT NULL;'); |
||
30 | |||
31 | if ($table->hasColumn('msg_status')) { |
||
32 | $this->addSql('ALTER TABLE message CHANGE msg_status msg_type SMALLINT NOT NULL'); |
||
33 | } |
||
34 | |||
35 | if (!$table->hasColumn('status')) { |
||
36 | $this->addSql('ALTER TABLE message ADD status SMALLINT NOT NULL'); |
||
37 | } |
||
38 | |||
39 | if ($table->hasIndex('idx_message_parent')) { |
||
40 | $this->addSql('DROP INDEX idx_message_parent ON message'); |
||
41 | } |
||
42 | |||
43 | $this->addSql('UPDATE message SET parent_id = NULL WHERE parent_id = 0'); |
||
44 | |||
45 | $sql = 'SELECT id, parent_id FROM message WHERE parent_id IS NOT NULL AND parent_id <> 0'; |
||
46 | $result = $this->connection->executeQuery($sql); |
||
47 | $items = $result->fetchAllAssociative(); |
||
48 | |||
49 | foreach ($items as $item) { |
||
50 | $id = $item['id']; |
||
51 | $parentId = (int) $item['parent_id']; |
||
52 | $sql = "SELECT id FROM message WHERE id = $parentId"; |
||
53 | $result = $this->connection->executeQuery($sql); |
||
54 | $subItem = $result->fetchAllAssociative(); |
||
55 | |||
56 | if (empty($subItem)) { |
||
57 | $sql = "DELETE FROM message WHERE id = $id"; |
||
58 | $this->addSql($sql); |
||
59 | } |
||
60 | } |
||
61 | |||
62 | // $this->addSql('DELETE FROM message WHERE parent_id IS NOT NULL AND parent_id NOT IN (SELECT id FROM message)'); |
||
63 | |||
64 | $this->addSql('ALTER TABLE message CHANGE group_id group_id INT DEFAULT NULL'); |
||
65 | $this->addSql('UPDATE message SET group_id = NULL WHERE group_id = 0'); |
||
66 | |||
67 | // $this->addSql('DELETE FROM message WHERE parent_id IS NOT NULL AND parent_id in (select id FROM message WHERE user_sender_id NOT IN (SELECT id FROM user))'); |
||
68 | // $this->addSql('DELETE FROM message WHERE parent_id IS NOT NULL AND parent_id in (select id FROM message WHERE user_receiver_id NOT IN (SELECT id FROM user))'); |
||
69 | |||
70 | // Replace user_sender_id = 0 with the admin. |
||
71 | $adminId = $this->getAdmin()->getId(); |
||
72 | $this->addSql("UPDATE message SET user_sender_id = $adminId WHERE user_sender_id IS NOT NULL AND user_sender_id NOT IN (SELECT id FROM user) "); |
||
73 | |||
74 | // $this->addSql('DELETE FROM message WHERE user_sender_id NOT IN (SELECT id FROM user)'); |
||
75 | $this->addSql('DELETE FROM message WHERE user_receiver_id IS NOT NULL AND user_receiver_id NOT IN (SELECT id FROM user)'); |
||
76 | |||
77 | if (!$table->hasForeignKey('FK_B6BD307FFE54D947')) { |
||
78 | $this->addSql('ALTER TABLE message ADD CONSTRAINT FK_B6BD307FFE54D947 FOREIGN KEY (group_id) REFERENCES usergroup (id) ON DELETE CASCADE;'); |
||
79 | } |
||
80 | |||
81 | if (!$table->hasForeignKey('FK_B6BD307F727ACA70')) { |
||
82 | $this->addSql('CREATE INDEX IDX_B6BD307F727ACA70 ON message (parent_id)'); |
||
83 | $this->addSql( |
||
84 | 'ALTER TABLE message ADD CONSTRAINT FK_B6BD307F727ACA70 FOREIGN KEY (parent_id) REFERENCES message (id);' |
||
85 | ); |
||
86 | } |
||
87 | $this->addSql('DELETE FROM message WHERE user_sender_id IS NULL OR user_sender_id = 0'); |
||
88 | |||
89 | if ($table->hasForeignKey('FK_B6BD307F64482423')) { |
||
90 | $this->addSql('ALTER TABLE message DROP FOREIGN KEY FK_B6BD307F64482423'); |
||
91 | } |
||
92 | |||
93 | if (!$schema->hasTable('message_rel_user')) { |
||
94 | $this->addSql( |
||
95 | 'CREATE TABLE message_rel_user (id INT AUTO_INCREMENT NOT NULL, message_id INT NOT NULL, user_id INT NOT NULL, msg_read TINYINT(1) NOT NULL, starred TINYINT(1) NOT NULL, receiver_type SMALLINT NOT NULL, INDEX IDX_325D70B9537A1329 (message_id), INDEX IDX_325D70B9A76ED395 (user_id), UNIQUE INDEX message_receiver (message_id, user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC' |
||
96 | ); |
||
97 | $this->addSql( |
||
98 | 'CREATE TABLE message_rel_user_rel_tags (message_rel_user_id INT NOT NULL, message_tag_id INT NOT NULL, INDEX IDX_B4B37A20962B5422 (message_rel_user_id), INDEX IDX_B4B37A208DF5FE1E (message_tag_id), PRIMARY KEY(message_rel_user_id, message_tag_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC' |
||
99 | ); |
||
100 | $this->addSql( |
||
101 | 'ALTER TABLE message_rel_user ADD CONSTRAINT FK_325D70B9537A1329 FOREIGN KEY (message_id) REFERENCES message (id)' |
||
102 | ); |
||
103 | $this->addSql( |
||
104 | 'ALTER TABLE message_rel_user ADD CONSTRAINT FK_325D70B9A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE' |
||
105 | ); |
||
106 | $this->addSql( |
||
107 | 'ALTER TABLE message_rel_user_rel_tags ADD CONSTRAINT FK_B4B37A20962B5422 FOREIGN KEY (message_rel_user_id) REFERENCES message_rel_user (id) ON DELETE CASCADE' |
||
108 | ); |
||
109 | } |
||
110 | |||
111 | // $this->addSql('ALTER TABLE message CHANGE user_receiver_id user_receiver_id INT DEFAULT NULL'); |
||
112 | $this->addSql('UPDATE message SET user_receiver_id = NULL WHERE user_receiver_id = 0'); |
||
113 | |||
114 | /* |
||
115 | * $result = $this->connection->executeQuery('SELECT * FROM message WHERE user_receiver_id IS NOT NULL'); |
||
116 | * $messages = $result->fetchAllAssociative(); |
||
117 | * if ($messages) { |
||
118 | * foreach ($messages as $message) { |
||
119 | * $messageId = $message['id']; |
||
120 | * $receiverId = $message['user_receiver_id']; |
||
121 | * $result = $this->connection->executeQuery(" SELECT * FROM message_rel_user WHERE message_id = $messageId AND user_id = $receiverId"); |
||
122 | * $exists = $result->fetchAllAssociative(); |
||
123 | * if (empty($exists)) { |
||
124 | * $this->addSql("INSERT INTO message_rel_user (message_id, user_id, msg_read, starred) VALUES('$messageId', '$receiverId', 1, 0) "); |
||
125 | * } |
||
126 | * //$this->addSql("UPDATE message SET user_receiver_id = NULL WHERE id = $messageId"); |
||
127 | * } |
||
128 | * }*/ |
||
129 | |||
130 | if (!$table->hasForeignKey('FK_B6BD307FF6C43E79')) { |
||
131 | $this->addSql( |
||
132 | 'ALTER TABLE message ADD CONSTRAINT FK_B6BD307FF6C43E79 FOREIGN KEY (user_sender_id) REFERENCES user (id)' |
||
133 | ); |
||
134 | } |
||
135 | |||
136 | if ($table->hasIndex('idx_message_user_receiver_status')) { |
||
137 | $this->addSql('DROP INDEX idx_message_user_receiver_status ON message'); |
||
138 | } |
||
139 | |||
140 | if ($table->hasIndex('idx_message_receiver_status_send_date')) { |
||
141 | $this->addSql('DROP INDEX idx_message_receiver_status_send_date ON message'); |
||
142 | } |
||
143 | |||
144 | if ($table->hasIndex('idx_message_status')) { |
||
145 | $this->addSql('DROP INDEX idx_message_status ON message'); |
||
146 | } |
||
147 | |||
148 | if ($table->hasIndex('idx_message_user_receiver_type')) { |
||
149 | $this->addSql('DROP INDEX idx_message_user_receiver_type ON message'); |
||
150 | } |
||
151 | |||
152 | if ($table->hasIndex('idx_message_receiver_type_send_date')) { |
||
153 | $this->addSql('DROP INDEX idx_message_receiver_type_send_date ON message'); |
||
154 | } |
||
155 | |||
156 | if ($table->hasIndex('idx_message_user_receiver')) { |
||
157 | $this->addSql('DROP INDEX idx_message_user_receiver ON message'); |
||
158 | } |
||
159 | |||
160 | if ($table->hasIndex('idx_message_user_sender_user_receiver')) { |
||
161 | $this->addSql('DROP INDEX idx_message_user_sender_user_receiver ON message'); |
||
162 | } |
||
163 | |||
164 | if (!$table->hasIndex('idx_message_type')) { |
||
165 | $this->addSql('CREATE INDEX idx_message_type ON message (msg_type)'); |
||
166 | } |
||
167 | |||
168 | // $this->addSql('ALTER TABLE message CHANGE msg_status msg_status SMALLINT NOT NULL;'); |
||
169 | |||
170 | $this->addSql("CREATE TABLE social_post (id INT AUTO_INCREMENT NOT NULL, sender_id INT NOT NULL, user_receiver_id INT DEFAULT NULL, group_receiver_id INT DEFAULT NULL, parent_id INT DEFAULT NULL, subject LONGTEXT DEFAULT NULL, content LONGTEXT NOT NULL, type SMALLINT NOT NULL, status SMALLINT NOT NULL, send_date DATETIME NOT NULL COMMENT '(DC2Type:datetime)', updated_at DATETIME NOT NULL COMMENT '(DC2Type:datetime)', INDEX IDX_159BBFE9727ACA70 (parent_id), INDEX idx_social_post_sender (sender_id), INDEX idx_social_post_user (user_receiver_id), INDEX idx_social_post_group (group_receiver_id), INDEX idx_social_post_type (type), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC"); |
||
171 | |||
172 | $sql = 'INSERT INTO social_post (id, sender_id, user_receiver_id, group_receiver_id, parent_id, subject, content, type, status, send_date, updated_at) |
||
173 | SELECT DISTINCT m.id, |
||
174 | m.user_sender_id, |
||
175 | m.user_receiver_id, |
||
176 | m.group_id, |
||
177 | m.parent_id, |
||
178 | m.title, |
||
179 | m.content, |
||
180 | CASE m.msg_type |
||
181 | WHEN 8 THEN 2 |
||
182 | WHEN 9 THEN 1 |
||
183 | WHEN 10 THEN 1 |
||
184 | WHEN 13 THEN 4 |
||
185 | ELSE 1 |
||
186 | END AS type, |
||
187 | CASE m.msg_type |
||
188 | WHEN 8 THEN 1 |
||
189 | WHEN 10 THEN 1 |
||
190 | WHEN 13 THEN 1 |
||
191 | WHEN 9 THEN 2 |
||
192 | ELSE 2 |
||
193 | END AS status, |
||
194 | m.send_date, |
||
195 | m.update_date |
||
196 | FROM message m |
||
197 | WHERE m.msg_type IN (8, 9, 10, 13)'; |
||
198 | $this->addSql($sql); |
||
199 | |||
200 | $this->addSql('DELETE FROM social_post WHERE parent_id NOT IN (SELECT id FROM social_post)'); |
||
201 | |||
202 | $this->addSql('ALTER TABLE social_post ADD CONSTRAINT FK_159BBFE9F624B39D FOREIGN KEY (sender_id) REFERENCES user (id)'); |
||
203 | $this->addSql('ALTER TABLE social_post ADD CONSTRAINT FK_159BBFE964482423 FOREIGN KEY (user_receiver_id) REFERENCES user (id)'); |
||
204 | $this->addSql('ALTER TABLE social_post ADD CONSTRAINT FK_159BBFE9E8EBF277 FOREIGN KEY (group_receiver_id) REFERENCES usergroup (id) ON DELETE CASCADE'); |
||
205 | $this->addSql('ALTER TABLE social_post ADD CONSTRAINT FK_159BBFE9727ACA70 FOREIGN KEY (parent_id) REFERENCES social_post (id) ON DELETE CASCADE'); |
||
206 | |||
207 | if ($schema->hasTable('message_feedback')) { |
||
208 | $this->addSql('DELETE FROM message_feedback WHERE user_id IS NULL OR user_id = 0'); |
||
209 | |||
210 | $table = $schema->getTable('message_feedback'); |
||
211 | |||
212 | if ($table->hasIndex('IDX_DB0F8049537A1329')) { |
||
213 | $this->addSql('DROP INDEX IDX_DB0F8049537A1329 ON message_feedback'); |
||
214 | } |
||
215 | if ($table->hasForeignKey('FK_DB0F8049A76ED395')) { |
||
216 | $this->addSql('ALTER TABLE message_feedback DROP FOREIGN KEY FK_DB0F8049A76ED395'); |
||
217 | } |
||
218 | if ($table->hasIndex('IDX_DB0F8049A76ED395')) { |
||
219 | $this->addSql('DROP INDEX IDX_DB0F8049A76ED395 ON message_feedback'); |
||
220 | } |
||
221 | if ($table->hasIndex('idx_message_feedback_uid_mid')) { |
||
222 | $this->addSql('DROP INDEX idx_message_feedback_uid_mid ON message_feedback'); |
||
223 | } |
||
224 | |||
225 | $this->addSql('ALTER TABLE message_feedback CHANGE message_id social_post_id INT NOT NULL'); |
||
226 | $this->addSql('RENAME TABLE message_feedback TO social_post_feedback'); |
||
227 | $this->addSql('DELETE FROM social_post_feedback WHERE social_post_id NOT IN (SELECT id FROM social_post)'); |
||
228 | $this->addSql('CREATE INDEX IDX_DB7E436DA76ED395 ON social_post_feedback (user_id)'); |
||
229 | $this->addSql('CREATE INDEX IDX_DB7E436DC4F2D6B1 ON social_post_feedback (social_post_id)'); |
||
230 | $this->addSql('CREATE INDEX idx_social_post_uid_spid ON social_post_feedback (social_post_id, user_id)'); |
||
231 | } else { |
||
232 | $this->addSql("CREATE TABLE social_post_feedback (id INT AUTO_INCREMENT NOT NULL, social_post_id INT NOT NULL, user_id INT NOT NULL, liked TINYINT(1) DEFAULT '0' NOT NULL, disliked TINYINT(1) DEFAULT '0' NOT NULL, updated_at DATETIME NOT NULL COMMENT '(DC2Type:datetime)', INDEX IDX_DB7E436DC4F2D6B1 (social_post_id), INDEX IDX_DB7E436DA76ED395 (user_id), INDEX idx_social_post_uid_spid (social_post_id, user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC"); |
||
233 | } |
||
234 | |||
235 | $this->addSql('ALTER TABLE social_post_feedback ADD CONSTRAINT FK_DB7E436DA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE'); |
||
236 | $this->addSql('ALTER TABLE social_post_feedback ADD CONSTRAINT FK_DB7E436DC4F2D6B1 FOREIGN KEY (social_post_id) REFERENCES social_post (id) ON DELETE CASCADE'); |
||
237 | |||
238 | // ALTER TABLE message DROP user_receiver_id; |
||
239 | |||
240 | $this->addSql('DELETE FROM message_attachment WHERE message_id NOT IN (SELECT id FROM message)'); |
||
241 | |||
242 | $table = $schema->getTable('message_attachment'); |
||
243 | if (false === $table->hasIndex('IDX_B68FF524537A1329')) { |
||
244 | $this->addSql('CREATE INDEX IDX_B68FF524537A1329 ON message_attachment (message_id)'); |
||
245 | } |
||
246 | $this->addSql('ALTER TABLE message_attachment CHANGE message_id message_id INT NOT NULL'); |
||
247 | |||
248 | if (false === $table->hasForeignKey('FK_B68FF524537A1329')) { |
||
249 | $this->addSql('ALTER TABLE message_attachment ADD CONSTRAINT FK_B68FF524537A1329 FOREIGN KEY (message_id) REFERENCES message (id)'); |
||
250 | } |
||
251 | |||
252 | if (!$table->hasColumn('resource_node_id')) { |
||
253 | $this->addSql('ALTER TABLE message_attachment ADD resource_node_id INT DEFAULT NULL;'); |
||
254 | $this->addSql('CREATE UNIQUE INDEX UNIQ_B68FF5241BAD783F ON message_attachment (resource_node_id);'); |
||
255 | } |
||
256 | |||
257 | if (!$table->hasForeignKey('FK_B68FF5241BAD783F')) { |
||
258 | $this->addSql(' ALTER TABLE message_attachment ADD CONSTRAINT FK_B68FF5241BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE;'); |
||
259 | } |
||
260 | |||
261 | if (!$schema->hasTable('c_chat_conversation')) { |
||
262 | $this->addSql('CREATE TABLE c_chat_conversation (id INT AUTO_INCREMENT NOT NULL, resource_node_id INT DEFAULT NULL, title VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_CD09E33F1BAD783F (resource_node_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;'); |
||
263 | $this->addSql('ALTER TABLE c_chat_conversation ADD CONSTRAINT FK_CD09E33F1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'); |
||
264 | } |
||
265 | |||
266 | if (!$schema->hasTable('message_tag')) { |
||
267 | $this->addSql("CREATE TABLE message_tag (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, tag VARCHAR(255) NOT NULL, color VARCHAR(255) NOT NULL, position INT NOT NULL, created_at DATETIME NOT NULL COMMENT '(DC2Type:datetime)', updated_at DATETIME NOT NULL COMMENT '(DC2Type:datetime)', INDEX IDX_2ABC3D6FA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;"); |
||
268 | $this->addSql('ALTER TABLE message_tag ADD CONSTRAINT FK_2ABC3D6FA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE'); |
||
269 | $this->addSql('CREATE UNIQUE INDEX user_tag ON message_tag (user_id, tag)'); |
||
270 | |||
271 | $this->addSql( |
||
272 | 'ALTER TABLE message_rel_user_rel_tags ADD CONSTRAINT FK_B4B37A208DF5FE1E FOREIGN KEY (message_tag_id) REFERENCES message_tag (id) ON DELETE CASCADE ' |
||
273 | ); |
||
279 |