Skip to content

Commit 2ac82af

Browse files
committed
Fix migration to not require beta versions of MariaDB
1 parent 5683285 commit 2ac82af

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

database/migrations/2020_03_22_163911_merge_permissions_table_into_subusers.php

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,21 @@ public function up()
1818
$table->json('permissions')->nullable()->after('server_id');
1919
});
2020

21-
DB::statement('
22-
UPDATE subusers as s
23-
LEFT JOIN (
24-
SELECT subuser_id, JSON_ARRAYAGG(permission) as permissions
25-
FROM permissions
26-
GROUP BY subuser_id
27-
) as p ON p.subuser_id = s.id
28-
SET s.permissions = p.permissions
29-
');
21+
$cursor = DB::table('permissions')
22+
->select(['subuser_id'])
23+
->selectRaw('GROUP_CONCAT(permission) as permissions')
24+
->from('permissions')
25+
->groupBy(['subuser_id'])
26+
->cursor();
27+
28+
DB::transaction(function () use (&$cursor) {
29+
$cursor->each(function ($datum) {
30+
DB::update('UPDATE subusers SET permissions = ? WHERE id = ?', [
31+
json_encode(explode(',', $datum->permissions)),
32+
$datum->subuser_id,
33+
]);
34+
});
35+
});
3036
}
3137

3238
/**

0 commit comments

Comments
 (0)