tables as $db) {
$columns = $schema->databaseFields($db);
$query = "SHOW COLUMNS FROM $db";
$liveColumns = DB::query($query)->column();
$backedUp = 0;
$query = "SHOW TABLES LIKE 'Backup_$db'";
$tableExists = DB::query($query)->value();
if ($tableExists != null) {
$output->writeln("Tasks run already on $db exiting");
return Command::SUCCESS;
}
$backedUp = 0;
foreach ($liveColumns as $index => $column) {
if ($backedUp == 0) {
$output->writeln("Backing up $db
");
$output->writeln("Creating Backup_$db
");
// backup table
$query = "CREATE TABLE Backup_$db LIKE $db";
DB::query($query);
$output->writeln("Populating Backup_$db
");
$query = "INSERT Backup_$db SELECT * FROM $db";
DB::query($query);
$backedUp = 1;
}
if (!isset($columns[$column]) && !in_array($column, $this->keepColumns ?? [])) {
$output->writeln("Dropping $column from $db
");
$query = "ALTER TABLE $db DROP COLUMN $column";
DB::query($query);
}
}
}
return Command::SUCCESS;
}
}