spatie / laravel-migrate-fresh
Requires
- php: ^7.0
- illuminate/console: ^5.3.28
- illuminate/events: ^5.3.28
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^3.3
- phpunit/phpunit: 5.*
README
一个从头开始构建数据库的Artisan命令
Laravel有一个migrate:refresh
命令,用于使用迁移来构建数据库。为了清空数据库,它将首先通过在每个迁移中使用down
方法回滚所有迁移。
但如果你在项目中没有使用down
方法呢?由于数据库没有首先清空,migrate:refresh
命令将会失败。
此包包含一个migrate:fresh
命令,它将清除你数据库中的所有表,无论你是否在每个迁移中设置了down
方法。
Postcardware
你可以自由使用这个包(它是MIT许可的),但如果它进入你的生产环境,我们非常感激你从家乡寄给我们一张明信片,说明你正在使用我们的哪个包。
我们的地址是:Spatie,Samberstraat 69D,2060 安特卫普,比利时。
最好的明信片发布在我们的网站上。
要求
此命令支持MySQL、sqlite、PostgreSQL和MS SQL数据库。
注意:从Laravel 5.5开始,migrate:fresh
命令默认包含在Laravel中。
安装
您可以通过composer安装此包。
composer require spatie/laravel-migrate-fresh
然后,将Spatie\MigrateFresh\Commands\MigrateFresh
类添加到您的控制台内核中。
// app/Console/Kernel.php protected $commands = [ ... \Spatie\MigrateFresh\Commands\MigrateFresh::class, ]
用法
此命令将删除您的数据库中的所有表并运行所有迁移。
php artisan migrate:fresh
请注意,此命令将删除数据库中的所有表。不属于您的应用程序的表也将被删除。
通过附加seed
选项,所有种子也将运行。
php artisan migrate:fresh --seed
如果命令在生产环境中执行,将首先要求确认。要抑制确认,请使用force
选项。
php artisan migrate:fresh --force
事件
此包触发多个事件,您可以通过它们进行一些额外的逻辑来重建数据库。
Spatie\MigrateFresh\Events\DroppingTables
:将在删除第一张表之前触发Spatie\MigrateFresh\Events\DroppedTables
:将在所有表都已删除并且运行迁移的up
步骤之前触发
更新日志
请参阅更新日志以获取有关最近更改的更多信息。
测试
为了运行测试,您应该设置一个空的MySQL数据库 laravel_migrate_fresh
。用户名应为 root
,所需密码为空。
$ composer test
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 freek@spatie.be 通知,而不是使用问题跟踪器。
致谢
删除Postgresql数据库中所有表的初始代码由Jonathan Reinink提供,并由Peter Matseykanets审核。Peter还增加了对SQLite的支持。
关于Spatie
Spatie是一家位于比利时的安特卫普的网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述在这里。
许可
MIT许可(MIT)。请参阅许可文件获取更多信息。