laravel-automatic-migrations
laravel-automatic-migrations copied to clipboard
Suggest: Confirm migration if is about to delete columns
This issue is only a proposal:
Since auto migration could lead to accidental column deletions and data loss while updating existing tables, I added some code to MigrateAutoCommand.php to alert the user if the running migration is about to delete some columns.
Here is my proposal:
[ ... ]
$tableDiff = (new Comparator)->diffTable($modelTableDetails, $tempTableDetails);
if ($tableDiff) {
$delcount=count($tableDiff->removedColumns);
if ($delcount==0 ||
$this->confirm('This migration will delete ' . $delcount . ' column(s): [' .
implode(', ',array_keys($tableDiff->removedColumns)) . ']. Proceed?')){
$schemaManager->alterTable($tableDiff);
$this->line('<info>Table updated:</info> ' . $modelTable);
}
else {
$this->line('<info>Table update CANCELED:</info> ' . $modelTable);
}
}
[ ... ]
Bye, Marco