Skip to content

Commit fadfec2

Browse files
authoredOct 15, 2024··
FIX Ensure UserFormsColumnCleanTask runs safely (#1335)
1 parent f5cfc22 commit fadfec2

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed
 

‎code/Task/UserFormsColumnCleanTask.php

+15-15
Original file line numberDiff line numberDiff line change
@@ -33,32 +33,32 @@ public function run($request)
3333
$schema = DataObject::getSchema();
3434

3535
foreach ($this->tables as $db) {
36+
$table = $schema->tableName($db);
3637
$columns = $schema->databaseFields($db);
37-
$query = "SHOW COLUMNS FROM $db";
38+
$query = "SHOW COLUMNS FROM $table";
3839
$liveColumns = DB::query($query)->column();
39-
$backedUp = 0;
40-
$query = "SHOW TABLES LIKE 'Backup_$db'";
40+
$query = "SHOW TABLES LIKE 'Backup_$table'";
4141
$tableExists = DB::query($query)->value();
4242
if ($tableExists != null) {
43-
echo "Tasks run already on $db exiting";
43+
echo "Tasks run already on $table exiting";
4444
return;
4545
}
46-
$backedUp = 0;
47-
foreach ($liveColumns as $index => $column) {
48-
if ($backedUp == 0) {
49-
echo "Backing up $db <br />";
50-
echo "Creating Backup_$db <br />";
46+
$backedUp = false;
47+
foreach ($liveColumns as $column) {
48+
if (!$backedUp) {
49+
echo "Backing up $table <br />";
50+
echo "Creating Backup_$table <br />";
5151
// backup table
52-
$query = "CREATE TABLE Backup_$db LIKE $db";
52+
$query = "CREATE TABLE Backup_$table LIKE $table";
5353
DB::query($query);
54-
echo "Populating Backup_$db <br />";
55-
$query = "INSERT Backup_$db SELECT * FROM $db";
54+
echo "Populating Backup_$table <br />";
55+
$query = "INSERT Backup_$table SELECT * FROM $table";
5656
DB::query($query);
57-
$backedUp = 1;
57+
$backedUp = true;
5858
}
5959
if (!isset($columns[$column]) && !in_array($column, $this->keepColumns ?? [])) {
60-
echo "Dropping $column from $db <br />";
61-
$query = "ALTER TABLE $db DROP COLUMN $column";
60+
echo "Dropping $column from $table <br />";
61+
$query = "ALTER TABLE $table DROP COLUMN $column";
6262
DB::query($query);
6363
}
6464
}

0 commit comments

Comments
 (0)
Please sign in to comment.