如何在laravel中一次性删除数据库中的所有表。
对于迁移,我们使用-
Artisan::call('migrate', ['--force' => true]);
Run Code Online (Sandbox Code Playgroud)
但是要删除所有表,有任何一个
谢谢
php artisan db:wipe
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Laravel 6.x,这是删除所有表、它们的类型和视图的快速方法
详细描述:
$ php artisan db:wipe {--database=} {--drop-views} {--drop-types} {--force}
Run Code Online (Sandbox Code Playgroud)
database
- 要使用的数据库连接drop-views
- 删除所有表和视图drop-types
- 删除所有表和类型(仅限 Postgres)force
- 强制操作在生产中运行此更改还在内部影响了 db:fresh 命令的功能。现在它只是调用db:wipe
然后migrate
。
为什么不使用这个:
Artisan::call('migrate:reset', ['--force' => true]);
Run Code Online (Sandbox Code Playgroud)
在Laravel 5.6文档中,他们指定了以下内容:
migrate:reset命令将回滚您应用程序的所有迁移:
php artisan migrate:reset
您可以使用控制器方法来做到这一点
public function drop_tables(){
DB::statement("SET FOREIGN_KEY_CHECKS = 0");
$tables = DB::select('SHOW TABLES');
foreach($tables as $table){
Schema::drop($table->Tables_in_DbName); /// replace <DbName> according to your Databse Name
echo 'Table '.$table->Tables_in_DbName.' Droped. <br>'; // here too
}
DB::statement("SET FOREIGN_KEY_CHECKS = 1");
}
Run Code Online (Sandbox Code Playgroud)
根据您的要求调用它。
这将删除当前数据库中存在的所有表
归档时间: |
|
查看次数: |
8003 次 |
最近记录: |