Showing AI reviews for safee-meet-backend
Project AI Score ?
72%
Quality Avg ?
76%
Security Avg ?
67%
Reviews ?
16

Review Result ?

jattin01/safee-meet-backend · b33778c4
Adds a safety guard in the schema migration script to handle potential orphan shadow columns when the original column does not exist due to schema drift. Drops orphan columns if found and skips the swap operation accordingly, improving data consistency and robustness of migration.
Quality ?
80%
Security ?
90%
Business Value ?
70%
Maintainability ?
75%
Issues & Suggested Fixes ?
1AI detects the issue
2Shows file, line, or evidence
3Suggests the fix to apply
Raw Sql String Interpolation
Where app/Console/Commands/MigrateUsersToBigintId.php:409
Issue / Evidence raw SQL string interpolation
Suggested Fix consider using parameterized queries or an escape function to prevent SQL injection, even if table and column names are likely safe
Warning Message Could Benefit From Additio...
Where app/Console/Commands/MigrateUsersToBigintId.php:410
Issue / Evidence warning message could benefit from additional context or logging to a persistent logger
Suggested Fix change this to improve maintainability and troubleshooting
Code Change Preview · app/Console/Commands/MigrateUsersToBigintId.php ?
Removed / Before Commit
- private function finishColumnSwap(string $table, string $col, bool $addForeignKey): void
- {
- $newCol = "{$col}_new";
- if (!Schema::hasColumn($table, $newCol)) {
- $this->warn("  {$table}.{$newCol} missing — skipping (was shadow/backfill run for this table?).");
- return;
Added / After Commit
+ private function finishColumnSwap(string $table, string $col, bool $addForeignKey): void
+ {
+ $newCol = "{$col}_new";
+ 
+         if (!Schema::hasColumn($table, $col)) {
+             // Original column never existed on this deployment (schema
+             // drift) — an earlier, pre-fix run may still have created an
+             // orphan shadow column for it. Drop that orphan if present and
+             // move on; there's nothing to swap.
+             if (Schema::hasColumn($table, $newCol)) {
+                 DB::statement("ALTER TABLE `{$table}` DROP COLUMN `{$newCol}`");
+                 $this->warn("  {$table}.{$col} does not exist — dropped orphan shadow column `{$newCol}` and skipped.");
+             }
+             return;
+         }
+ 
+ if (!Schema::hasColumn($table, $newCol)) {
+ $this->warn("  {$table}.{$newCol} missing — skipping (was shadow/backfill run for this table?).");