Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过Laravel应用程序中途开始使用迁移_Php_Laravel_Laravel 4_Database Migration - Fatal编程技术网

Php 通过Laravel应用程序中途开始使用迁移

Php 通过Laravel应用程序中途开始使用迁移,php,laravel,laravel-4,database-migration,Php,Laravel,Laravel 4,Database Migration,在开发Laravel 4应用程序的过程中,我决定开始使用Laravel的迁移功能 问题:我们是否应该编写迁移来创建数据库中当前所有的表?还是我们只为将来的更改编写迁移?对此没有完全正确的答案。这一切都取决于很多变量,比如您的开发风格、您与多少人一起工作以及在什么样的环境中工作(单个生产数据库?多个开发数据库?),您对迁移的要求是什么,等等 如果到目前为止您决定为整个数据库编写迁移,那么您需要确保您的迁移能够处理任何潜在的冲突。使用Schema::has()等在尝试创建表之前验证表是否存在,等等

在开发Laravel 4应用程序的过程中,我决定开始使用Laravel的迁移功能


问题:我们是否应该编写迁移来创建数据库中当前所有的表?还是我们只为将来的更改编写迁移?

对此没有完全正确的答案。这一切都取决于很多变量,比如您的开发风格、您与多少人一起工作以及在什么样的环境中工作(单个生产数据库?多个开发数据库?),您对迁移的要求是什么,等等

如果到目前为止您决定为整个数据库编写迁移,那么您需要确保您的迁移能够处理任何潜在的冲突。使用
Schema::has()
等在尝试创建表之前验证表是否存在,等等

或者,您可以编写迁移,就好像数据库有一个干净的记录一样,并强制任何开发人员在运行迁移之前从一个空数据库开始。这有风险,所以要小心。确保你有备份,以防你的迁移忘记了什么,你需要修改它


因此,TL;DR:在项目的一部分中对整个结构使用迁移必然是一件坏事吗?不,适合你的申请吗?这完全取决于情况。

我认为在生产环境中“运行”的每个表实际上都可以从任何迁移脚本中删除(我不这么做),我想说不用麻烦了。导出当前数据库,就得到了“参考状态”。毕竟,这就是迁移的意义,对吗?轻松地将更改应用到尚未进行更改的数据库?