如何解决Laravel 如何自动删除表然后导入 sql 文件然后应用迁移?
由于与 Laravel 在其他数据库中的命名约定不同,我需要在 Laravel 中自动执行此过程:
- 删除所有表
- 导入sql转储文件
- 重命名我的迁移,重命名列、FK 等...
我能做些什么来实现这一目标?
php artisan migrate:fresh --seed 命令不起作用,因为它会在最后导入 sql。
解决方法
您可以为此任务编写一个 custom command。
-
创建命令:
php artisan make:command MigrateDatabase
-
打开命令文件
app/Console/Commands/MigrateDatabase.php
-
将命令名称更改为:
protected $signature = 'migrate_database:migrate';
-
在
handle()
方法中写下这些行:public function handle(){ Artisan::call('migrate:reset',['--force' => true]); DB::unprepared(file_get_contents('full/path/to/dump.sql')); Artisan::call('migrate'); }
-
调用命令:
php artisan migrate_database:migrate
在生产中运行之前要小心,我没有测试。 (当然它会删除你的数据库)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。