开发人员经常会犯了一个错误,这个错误导致从登台数据库中删除每个表。从好的方面来说,这不是生产数据。好在没有客户数据受到损害。暂存数据库由Amazon RDS快照在20分钟内恢复,并且仅在内部使用。无论如何,请注意生产状态命令。在开发阶段缓存配置和路由通常会导致意外行为。如果您不清除路由缓存,可能会浪费一些时间来了解为什么未发生“ 404页面未找到”的情况。配置缓存是一个有趣的发现。
功能1:config:cache
如果您php artisan config:cache在Laravel应用程序中运行,它将生成一个bootstrap/cache/config.php文件,其中包含config/*.php文件夹中的所有配置。目的是通过将设置缓存在准备就绪状态来加快Laravel的引导过程。
功能2:RefreshDatabase
Laravel 5.5附带了一个称为的新特性RefreshDatabase和一个名为的出色迁移命令migrate:fresh。该特征只会迁移一次,然后使用事务来加快测试套件的速度,但是它将在启动之前删除所有现有表。当然,它是用于sqlite :memory:或本地数据库。
冲突
您的本地环境设置为使用与每个开发人员共享的登台数据库。这样做的原因是因为您要测试功能的性能,并且登台数据库具有一些相当好的数据集来对此进行测试。但是,由于要测试性能,你显然要缓存的路径和配置。
您对结果感到满意。现在该继续下一个功能了。作为TDD爱好者,您编写一个新测试并运行它以查看它在哪里中断。它失败。太好了,现在就实施它。屋子里有人大喊— 伙计们,登台数据库发生了什么?
您的测试套件未:memory : 从中加载您的 价值phpunit.xml。不需要,因为bootstrap/cache/config.php具有所有必要的设置。遗憾的是,设置不正确。
您进入Amazon控制台并在过去5分钟内恢复快照。在15到20分钟内,重新运行环境不会造成永久损坏。
善后
在学习了如何炸毁意外数据库之后,让我们学习如何保护它。
1-101:删除权限
别偷懒 为您的项目设置一个没有DROP临时环境权限的新数据库用户。
2-测试设置白名单
CreatesApplication特点是检查特定设置是否预期或不完美的地方。它在测试套件之间共享,并在设置数据库之前执行。
这将确保如果您搞砸了,则意外的环境将不会受到影响。
3- [奖金]使调试更加容易
您的环境受到保护。一切就绪。这不会再发生。但是,下次您缓存设置并忘记设置时,测试将告诉您设置错误。您可能会phpunit.xml困惑地看待该文件,甚至可能怎么办。为了使将来的事情变得简单明了,多了3行代码可以节省一些调试时间。
结论
第二天,我在站立会议上报告说,我已经测试了数据库备份系统。他们的工作异常出色。从好的方面来说,我还报告说我不会再意外地对其进行测试。
上述就是关于如何销毁登台数据库的全部内容,想了解更多关于数据库的信息,请继续关注。