diff --git a/app/Console/Commands/PaveIt.php b/app/Console/Commands/PaveIt.php index 25a9e4d4bc..b9c1c052c7 100644 --- a/app/Console/Commands/PaveIt.php +++ b/app/Console/Commands/PaveIt.php @@ -5,6 +5,22 @@ namespace App\Console\Commands; use Illuminate\Console\Command; use DB; +use App\Models\Accessory; +use App\Models\Asset; +use App\Models\AssetModel; +use App\Models\Category; +use App\Models\Company; +use App\Models\Component; +use App\Models\Consumable; +use App\Models\Depreciation; +use App\Models\Group; +use App\Models\License; +use App\Models\LicenseSeat; +use App\Models\Location; +use App\Models\Manufacturer; +use App\Models\Statuslabel; +use App\Models\Supplier; + class PaveIt extends Command { /** @@ -12,7 +28,8 @@ class PaveIt extends Command * * @var string */ - protected $signature = 'snipeit:pave'; + protected $signature = 'snipeit:pave + {--soft: Perform a "Soft" Delete, leaving all migrations, table structure, and the first user in place.}'; /** * The console command description. @@ -38,45 +55,76 @@ class PaveIt extends Command */ public function handle() { + if ($this->confirm("\n****************************************************\nTHIS WILL DELETE ALL OF THE DATA IN YOUR DATABASE. \nThere is NO undo. This WILL destroy ALL of your data. \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")) + { + if( $this->option('soft')) + { + Accessory::getQuery()->delete(); + Asset::getQuery()->delete(); + Category::getQuery()->delete(); + Company::getQuery()->delete(); + Component::getQuery()->delete(); + Consumable::getQuery()->delete(); + Depreciation::getQuery()->delete(); + License::getQuery()->delete(); + LicenseSeat::getQuery()->delete(); + Location::getQuery()->delete(); + Manufacturer::getQuery()->delete(); + AssetModel::getQuery()->delete(); + Statuslabel::getQuery()->delete(); + Supplier::getQuery()->delete(); + Group::getQuery()->delete(); - if ($this->confirm("\n****************************************************\nTHIS WILL DROP ALL OF THE TABLES IN YOUR DATABASE. \nThere is NO undo. This WILL destroy ALL of your data. \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")) { - - \DB::statement('drop table IF EXISTS accessories_users'); - \DB::statement('drop table IF EXISTS accessories'); - \DB::statement('drop table IF EXISTS asset_logs'); - \DB::statement('drop table IF EXISTS asset_maintenances'); - \DB::statement('drop table IF EXISTS asset_uploads'); - \DB::statement('drop table IF EXISTS assets'); - \DB::statement('drop table IF EXISTS categories'); - \DB::statement('drop table IF EXISTS companies'); - \DB::statement('drop table IF EXISTS consumables_users'); - \DB::statement('drop table IF EXISTS consumables'); - \DB::statement('drop table IF EXISTS custom_field_custom_fieldset'); - \DB::statement('drop table IF EXISTS custom_fields'); - \DB::statement('drop table IF EXISTS custom_fieldsets'); - \DB::statement('drop table IF EXISTS depreciations'); - \DB::statement('drop table IF EXISTS groups'); - \DB::statement('drop table IF EXISTS history'); - \DB::statement('drop table IF EXISTS components'); - \DB::statement('drop table IF EXISTS components_assets'); - \DB::statement('drop table IF EXISTS license_seats'); - \DB::statement('drop table IF EXISTS licenses'); - \DB::statement('drop table IF EXISTS locations'); - \DB::statement('drop table IF EXISTS manufacturers'); - \DB::statement('drop table IF EXISTS models'); - \DB::statement('drop table IF EXISTS migrations'); - \DB::statement('drop table IF EXISTS password_resets'); - \DB::statement('drop table IF EXISTS requested_assets'); - \DB::statement('drop table IF EXISTS requests'); - \DB::statement('drop table IF EXISTS settings'); - \DB::statement('drop table IF EXISTS status_labels'); - \DB::statement('drop table IF EXISTS suppliers'); - \DB::statement('drop table IF EXISTS throttle'); - \DB::statement('drop table IF EXISTS users_groups'); - \DB::statement('drop table IF EXISTS users'); - - + DB::statement('delete from accessories_users'); + DB::statement('delete from asset_logs'); + DB::statement('delete from asset_maintenances'); + DB::statement('delete from asset_uploads'); + DB::statement('delete from consumables_users'); + DB::statement('delete from custom_field_custom_fieldset'); + DB::statement('delete from custom_fields'); + DB::statement('delete from custom_fieldsets'); + DB::statement('delete from components_assets'); + DB::statement('delete from password_resets'); + DB::statement('delete from requested_assets'); + DB::statement('delete from requests'); + DB::statement('delete from throttle'); + DB::statement('delete from users_groups'); + DB::statement('delete from users WHERE id!=1'); + } else { + \DB::statement('drop table IF EXISTS accessories_users'); + \DB::statement('drop table IF EXISTS accessories'); + \DB::statement('drop table IF EXISTS asset_logs'); + \DB::statement('drop table IF EXISTS asset_maintenances'); + \DB::statement('drop table IF EXISTS asset_uploads'); + \DB::statement('drop table IF EXISTS assets'); + \DB::statement('drop table IF EXISTS categories'); + \DB::statement('drop table IF EXISTS companies'); + \DB::statement('drop table IF EXISTS consumables_users'); + \DB::statement('drop table IF EXISTS consumables'); + \DB::statement('drop table IF EXISTS custom_field_custom_fieldset'); + \DB::statement('drop table IF EXISTS custom_fields'); + \DB::statement('drop table IF EXISTS custom_fieldsets'); + \DB::statement('drop table IF EXISTS depreciations'); + \DB::statement('drop table IF EXISTS groups'); + \DB::statement('drop table IF EXISTS history'); + \DB::statement('drop table IF EXISTS components'); + \DB::statement('drop table IF EXISTS components_assets'); + \DB::statement('drop table IF EXISTS license_seats'); + \DB::statement('drop table IF EXISTS licenses'); + \DB::statement('drop table IF EXISTS locations'); + \DB::statement('drop table IF EXISTS manufacturers'); + \DB::statement('drop table IF EXISTS models'); + \DB::statement('drop table IF EXISTS migrations'); + \DB::statement('drop table IF EXISTS password_resets'); + \DB::statement('drop table IF EXISTS requested_assets'); + \DB::statement('drop table IF EXISTS requests'); + \DB::statement('drop table IF EXISTS settings'); + \DB::statement('drop table IF EXISTS status_labels'); + \DB::statement('drop table IF EXISTS suppliers'); + \DB::statement('drop table IF EXISTS throttle'); + \DB::statement('drop table IF EXISTS users_groups'); + \DB::statement('drop table IF EXISTS users'); + } } - } }