Php 通过Laravel应用程序中途开始使用迁移
在开发Laravel 4应用程序的过程中,我决定开始使用Laravel的迁移功能Php 通过Laravel应用程序中途开始使用迁移,php,laravel,laravel-4,database-migration,Php,Laravel,Laravel 4,Database Migration,在开发Laravel 4应用程序的过程中,我决定开始使用Laravel的迁移功能 问题:我们是否应该编写迁移来创建数据库中当前所有的表?还是我们只为将来的更改编写迁移?对此没有完全正确的答案。这一切都取决于很多变量,比如您的开发风格、您与多少人一起工作以及在什么样的环境中工作(单个生产数据库?多个开发数据库?),您对迁移的要求是什么,等等 如果到目前为止您决定为整个数据库编写迁移,那么您需要确保您的迁移能够处理任何潜在的冲突。使用Schema::has()等在尝试创建表之前验证表是否存在,等等
问题:我们是否应该编写迁移来创建数据库中当前所有的表?还是我们只为将来的更改编写迁移?对此没有完全正确的答案。这一切都取决于很多变量,比如您的开发风格、您与多少人一起工作以及在什么样的环境中工作(单个生产数据库?多个开发数据库?),您对迁移的要求是什么,等等 如果到目前为止您决定为整个数据库编写迁移,那么您需要确保您的迁移能够处理任何潜在的冲突。使用
Schema::has()
等在尝试创建表之前验证表是否存在,等等
或者,您可以编写迁移,就好像数据库有一个干净的记录一样,并强制任何开发人员在运行迁移之前从一个空数据库开始。这有风险,所以要小心。确保你有备份,以防你的迁移忘记了什么,你需要修改它
因此,TL;DR:在项目的一部分中对整个结构使用迁移必然是一件坏事吗?不,适合你的申请吗?这完全取决于情况。我认为在生产环境中“运行”的每个表实际上都可以从任何迁移脚本中删除(我不这么做),我想说不用麻烦了。导出当前数据库,就得到了“参考状态”。毕竟,这就是迁移的意义,对吗?轻松地将更改应用到尚未进行更改的数据库?