@@ -15,57 +15,60 @@ class m200123_081049_convert_settings_to_contact_template extends Migration
1515 */
1616 public function safeUp ()
1717 {
18- $ schemaRows = (new Query ())
19- ->select (['name ' => new Expression ('SUBSTR(`key`, 1, LOCATE(".", `key`) - 1) ' )])
20- ->from ('{{%settings}} ' )
21- ->where (['section ' => 'contact ' ])
22- ->groupBy ('name ' )
23- ->all ();
2418
25- $ schemaNames = ArrayHelper::getColumn ($ schemaRows , 'name ' );
26-
27-
28- foreach ($ schemaNames as $ schemaName ) {
29- $ settingRows = (new Query ())
30- ->select ([
31- 'value ' ,
32- 'identifier ' => new Expression ('SUBSTR(`key`, LOCATE(".", `key`) + 1) ' ),
33- 'id '
34- ])
19+ if ($ this ->db ->getDriverName () === 'mysql ' ) {
20+ $ schemaRows = (new Query ())
21+ ->select (['name ' => new Expression ('SUBSTR([[key]], 1, LOCATE(".", [[key]]) - 1) ' )])
3522 ->from ('{{%settings}} ' )
3623 ->where (['section ' => 'contact ' ])
37- ->andWhere ( " `key` LIKE ' { $ schemaName } .%' " )
24+ ->groupBy ( ' name ' )
3825 ->all ();
3926
40- $ columns = [
41- 'name ' => $ schemaName ,
42- 'created_at ' => new Expression ('NOW() ' ),
43- 'updated_at ' => new Expression ('NOW() ' )
44- ];
27+ $ schemaNames = ArrayHelper::getColumn ($ schemaRows , 'name ' );
28+
29+
30+ foreach ($ schemaNames as $ schemaName ) {
31+ $ settingRows = (new Query ())
32+ ->select ([
33+ 'value ' ,
34+ 'identifier ' => new Expression ('SUBSTR([[key]], LOCATE(".", [[key]]) + 1) ' ),
35+ 'id '
36+ ])
37+ ->from ('{{%settings}} ' )
38+ ->where (['section ' => 'contact ' ])
39+ ->andWhere ("[[key]] LIKE ' {$ schemaName }.%' " )
40+ ->all ();
4541
46- $ settingsIds = [];
42+ $ columns = [
43+ 'name ' => $ schemaName ,
44+ 'created_at ' => new Expression ('NOW() ' ),
45+ 'updated_at ' => new Expression ('NOW() ' )
46+ ];
4747
48- foreach ($ settingRows as $ settingRow ) {
49- $ value = $ settingRow ['value ' ];
50- switch ($ settingRow ['identifier ' ]) {
51- case 'schema ' :
52- $ columns ['form_schema ' ] = $ value ;
53- break ;
54- case 'toEmail ' :
55- $ columns ['to_email ' ] = $ value ;
56- break ;
57- case 'fromEmail ' :
58- $ columns ['from_email ' ] = $ value ;
59- break ;
60- case 'subject ' :
61- $ columns ['email_subject ' ] = $ value ;
62- break ;
48+ $ settingsIds = [];
49+
50+ foreach ($ settingRows as $ settingRow ) {
51+ $ value = $ settingRow ['value ' ];
52+ switch ($ settingRow ['identifier ' ]) {
53+ case 'schema ' :
54+ $ columns ['form_schema ' ] = $ value ;
55+ break ;
56+ case 'toEmail ' :
57+ $ columns ['to_email ' ] = $ value ;
58+ break ;
59+ case 'fromEmail ' :
60+ $ columns ['from_email ' ] = $ value ;
61+ break ;
62+ case 'subject ' :
63+ $ columns ['email_subject ' ] = $ value ;
64+ break ;
65+ }
66+ $ settingsIds [] = $ settingRow ['id ' ];
6367 }
64- $ settingsIds [] = $ settingRow ['id ' ];
65- }
6668
67- $ this ->insert ('{{%dmstr_contact_template}} ' , $ columns );
68- $ this ->delete ('{{%settings}} ' , ['id ' => $ settingsIds ]);
69+ $ this ->insert ('{{%dmstr_contact_template}} ' , $ columns );
70+ $ this ->delete ('{{%settings}} ' , ['id ' => $ settingsIds ]);
71+ }
6972 }
7073 }
7174
0 commit comments