spatie/laravel-migrate-fresh

此包已被弃用,不再维护。作者建议使用laravel/framework包。

一个从头开始构建数据库的命令

1.5.4 2018-08-27 13:42 UTC

This package is auto-updated.

Last update: 2019-09-13 09:20:52 UTC


README

一个从头开始构建数据库的Artisan命令

Latest Version on Packagist Software License Build Status Quality Score StyleCI Total Downloads

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)。请参阅许可文件获取更多信息。