Usage:
❯ php artisan sqlite:clean --touch
<?php | |
Artisan::add(new SqliteCleanCommand); | |
Artisan::add(new SqliteTouchCommand); |
<?php | |
use Illuminate\Console\Command; | |
use Symfony\Component\Console\Input\InputOption; | |
use Symfony\Component\Console\Input\InputArgument; | |
class SqliteCleanCommand extends Command { | |
/** | |
* The console command name. | |
* | |
* @var string | |
*/ | |
protected $name = 'sqlite:clean'; | |
/** | |
* The console command description. | |
* | |
* @var string | |
*/ | |
protected $description = 'Remove the sqlite database file.'; | |
/** | |
* Execute the console command. | |
* | |
* @return mixed | |
*/ | |
public function fire() | |
{ | |
if (App::environment() !== 'local') { | |
$this->error('Refusing to run in non-local environment.'); | |
exit; | |
} | |
$file = Config::get('database.connections.sqlite.database'); | |
if (! File::exists($file)) { | |
$this->info('Database file not found.'); | |
} else { | |
File::delete($file); | |
$this->info('Removed file: '.$file); | |
} | |
if ($this->option('touch')) { | |
$this->call('sqlite:touch'); | |
} | |
} | |
/** | |
* Get the console command options. | |
* | |
* @return array | |
*/ | |
protected function getOptions() | |
{ | |
return [ | |
['touch', null, InputOption::VALUE_NONE, 'Touch the database file after cleaning it.', null], | |
]; | |
} | |
} |
<?php | |
use Illuminate\Console\Command; | |
use Symfony\Component\Console\Input\InputOption; | |
use Symfony\Component\Console\Input\InputArgument; | |
class SqliteTouchCommand extends Command { | |
/** | |
* The console command name. | |
* | |
* @var string | |
*/ | |
protected $name = 'sqlite:touch'; | |
/** | |
* The console command description. | |
* | |
* @var string | |
*/ | |
protected $description = 'Create the local sqlite database file.'; | |
/** | |
* Execute the console command. | |
* | |
* @return mixed | |
*/ | |
public function fire() | |
{ | |
if (App::environment() !== 'local') { | |
$this->error('Refusing to run in non-local environment.'); | |
exit; | |
} | |
$file = Config::get('database.connections.sqlite.database'); | |
if (File::exists($file)) { | |
return $this->info('Database file already exists.'); | |
} | |
File::put($file, ''); | |
$this->info('Created file: '.$file); | |
} | |
} |