diff --git a/src/app/Console/Commands/DB/ExpungeCommand.php b/src/app/Console/Commands/DB/ExpungeCommand.php new file mode 100644 --- /dev/null +++ b/src/app/Console/Commands/DB/ExpungeCommand.php @@ -0,0 +1,49 @@ +subMonthsWithoutOverflow(6)) + ->delete(); + + \App\Policy\Greylist\Whitelist::where('updated_at', '<', Carbon::now()->subMonthsWithoutOverflow(6)) + ->delete(); + + \App\Policy\RateLimit::where('updated_at', '<', Carbon::now()->subMonthsWithoutOverflow(6)) + ->delete(); + + \App\SignupCode::where('created_at', '<', Carbon::now()->subMonthsWithoutOverflow(6)) + ->forceDelete(); + + DB::table('failed_jobs')->where('failed_at', '<', Carbon::now()->subMonthsWithoutOverflow(6)) + ->delete(); + + // TODO: What else? Should we force-delete deleted "dummy/spammer" accounts? + } +} diff --git a/src/tests/Feature/Console/DB/ExpungeTest.php b/src/tests/Feature/Console/DB/ExpungeTest.php new file mode 100644 --- /dev/null +++ b/src/tests/Feature/Console/DB/ExpungeTest.php @@ -0,0 +1,19 @@ +assertSame(0, $code); + } +}