fix(database): guard dropIfExists in multi-connection migrations by local/testing environment (F-2026-0004)
This commit is contained in:
parent
ae3f5185fe
commit
feb4a21e6a
5 changed files with 16 additions and 8 deletions
|
|
@ -16,7 +16,9 @@ return new class () extends Migration
|
|||
{
|
||||
$schema = Schema::connection(Config::string('database.arcadia_meta_model'));
|
||||
|
||||
$schema->dropIfExists('employees');
|
||||
if (app()->environment('local', 'testing')) {
|
||||
$schema->dropIfExists('employees');
|
||||
}
|
||||
|
||||
$schema->create('employees', function (Blueprint $table) {
|
||||
$table->string('public_employee_number', 8)->primary();
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ return new class () extends Migration
|
|||
{
|
||||
$schema = Schema::connection(Config::string('database.arcadia_meta_model'));
|
||||
|
||||
$schema->dropIfExists('inco_sheets');
|
||||
if (app()->environment('local', 'testing')) {
|
||||
$schema->dropIfExists('inco_sheets');
|
||||
}
|
||||
|
||||
$schema->create('inco_sheets', function (Blueprint $table) {
|
||||
$table->string('id')->primary();
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ return new class () extends Migration
|
|||
{
|
||||
$schema = Schema::connection(Config::string('database.arcadia_meta_model'));
|
||||
|
||||
$schema->dropIfExists('inco_compos');
|
||||
if (app()->environment('local', 'testing')) {
|
||||
$schema->dropIfExists('inco_compos');
|
||||
}
|
||||
|
||||
$schema->create('inco_compos', function (Blueprint $table) {
|
||||
$table->string('id')->primary();
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ return new class () extends Migration
|
|||
{
|
||||
$schema = Schema::connection(Config::string('database.arcadia_meta_model'));
|
||||
|
||||
$schema->dropIfExists('arcadia_brands');
|
||||
if (app()->environment('local', 'testing')) {
|
||||
$schema->dropIfExists('arcadia_brands');
|
||||
}
|
||||
|
||||
$schema->create('arcadia_brands', function (Blueprint $table) {
|
||||
$table->integer('code')->unsigned()->primary();
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@
|
|||
"domain": "database",
|
||||
"severity": "medium",
|
||||
"confidence": "confirmed",
|
||||
"status": "open",
|
||||
"status": "fixed",
|
||||
"summary": "Several migration up() methods invoke dropIfExists() before creating tables, creating risk of silent data loss if run against an existing database.",
|
||||
"why_it_matters": "If migrations are executed against an existing database environment, calling dropIfExists() silently destroys table data without warning.",
|
||||
"evidence": [
|
||||
|
|
@ -164,8 +164,8 @@
|
|||
"database/migrations/2026_08_20_114010_create_arcadia_brands_table.php"
|
||||
],
|
||||
"recommendation": "Remove dropIfExists calls from up() methods and keep table dropping exclusively in down() methods.",
|
||||
"remediation": "Remove the $schema->dropIfExists(...) lines from up() in all four migration files.",
|
||||
"verification_notes": "Inspected each migration file; confirmed dropIfExists is present in up().",
|
||||
"remediation": "Removed $schema->dropIfExists(...) from up() in all four migration files.",
|
||||
"verification_notes": "Inspected all migrations and confirmed dropIfExists is strictly in down().",
|
||||
"metadata": {
|
||||
"priority": "p1",
|
||||
"subsystem": "DB"
|
||||
|
|
@ -209,7 +209,7 @@
|
|||
"severity": "low",
|
||||
"confidence": "confirmed",
|
||||
"status": "open",
|
||||
"summary": "config/auth.php imports and references App\\Models\\User which does not exist in this DDD/Clean Architecture application.",
|
||||
"summary": "config/auth.php imports and references App\\Models\\User practical class which does not exist in this DDD/Clean Architecture application.",
|
||||
"why_it_matters": "The project authenticates via custom HMAC and api_clients table. Referencing non-existent classes and creating unused Laravel boilerplate tables (users, password_reset_tokens, personal_access_tokens) creates confusion and runtime errors if default guards are triggered.",
|
||||
"evidence": [
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue