Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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_Database_Laravel_Laravel Migrations_Horizontal Scaling - Fatal编程技术网

Php 如何在无停机时间的水平缩放设置中使用Laravel迁移?

Php 如何在无停机时间的水平缩放设置中使用Laravel迁移?,php,database,laravel,laravel-migrations,horizontal-scaling,Php,Database,Laravel,Laravel Migrations,Horizontal Scaling,我喜欢横向扩展web应用程序,这意味着让它在多个节点上运行,并由一个负载平衡器分配负载。在我的例子中,它是一个Laravel应用程序,提供Laravel迁移以控制数据库方案更改的版本。有一个数据库实例连接到节点 现在,如果我想要零停机时间,我通常的方法是一个接一个地耗尽节点,并用运行新应用程序版本的节点替换它们 何时以及如何应用Laravel迁移,或者更一般地说,为新的应用程序版本更新数据库 如果新的数据库结构是向后兼容的,那么运行以前版本的尚未耗尽的节点应该可以正常运行。但是,如果您的数据库迁

我喜欢横向扩展web应用程序,这意味着让它在多个节点上运行,并由一个负载平衡器分配负载。在我的例子中,它是一个Laravel应用程序,提供Laravel迁移以控制数据库方案更改的版本。有一个数据库实例连接到节点

现在,如果我想要零停机时间,我通常的方法是一个接一个地耗尽节点,并用运行新应用程序版本的节点替换它们

何时以及如何应用Laravel迁移,或者更一般地说,为新的应用程序版本更新数据库

如果新的数据库结构是向后兼容的,那么运行以前版本的尚未耗尽的节点应该可以正常运行。但是,如果您的数据库迁移不是向后兼容的(或者您只是不知道这一点,因为毕竟,可靠的自动化过程的要点是不必一直考虑这些事情),那么如何进行呢

有一些文章描述了在一个实例上使用多个文件夹实现零停机时间,但没有横向扩展。 例如


也有很多关于水平缩放的文章。但我似乎找不到任何解释如何处理数据库迁移的方法。

节点之间共享一个数据库,对吗?@levi yes。我会更新这个问题。嗨@RichardKiefer,你设置好了吗?嗨@fgilio很抱歉反应太晚。希望你能找到出路。我还没有真正解决它。关于这是否是拉拉维尔的责任还有一个讨论:我们很少有突破性的变化,所以这个问题还没有在野外出现。我将通过弃用模式、更新代码以不再使用弃用的内容、等待部署以使旧代码节点不再处于活动状态,以及在下一版本中删除弃用的内容来规避这些问题。嗨@RichardKiefer,不用担心。我也没有解决它。感谢分享GitHub问题!