问题 ExpressionEngine:git:本地开发:远程数据库


对于那些试图成为优秀小开发人员和版本控制他们的ExpressionEngine网站的人,你如何处理你的数据库?

由于我在一个ExpressionEngine网站上工作的多个开发人员的经验有限,我们不得不运行在远程Web服务器上运行的单个MySQL开发数据库。对于那些试过这个的人来说,它很慢。页面加载可能需要5-10秒才能使开发变得非常困难。远程开发服务器的处理速度会更快。我试图避开远程MySQL服务器的工作,以便能够在任何地方工作,而不依赖于Internet连接速度/质量。

只是想知道其他人如何处理他们的MySQL数据库。

您的所有开发人员都使用一个中央数据库吗?你有没有像我们一样处理缓慢的问题?

您是否将数据库置于版本控制之下?您如何处理多个开发人员和多个分支机构之间的导出/导入?

有了一个开发人员,我可以非常轻松地导入/导出/提交数据库,但只要你添加另一个开发人员,它就变得非常混乱。期待听到每个人对这个庞大话题的看法。

谢谢!


9917
now


起源



答案:


你最近看过EE Profiler吗?您可能会在主页上看到20-80个查询,具体取决于它的复杂程度。

问题是,对于每个查询,MySQL必须执行远程数据请求,下载响应,然后呈现ExpressionEngine它的数据。数据库的20-80次往返是导致您延误的原因,我认为您无法做太多事情。当使用远程(我们的网络外)数据库时,我会得到与您相同的延迟。

当MySQL在您的计算机或生产服务器上运行时,它没有添加的网络请求导致其数据请求的延迟。这是不同的。

至于修复,您所能做的就是移动到内部网络上托管的数据库。我们有一台Linux机器,模仿我们用于分段的生产环境。由于它在我们的网络上,我们可以使用我们的本地IP地址 database.php 文件。这是 许多 更快。

我们仍然存在的问题是频道/字段/条目的问题。当开发人员处理新部分时,他们可能需要创建新的频道和字段和/或新条目。当我们准备将该功能推向生产时,我们必须在生产服务器上手动进行这些更改,因为无法可靠地导出它们。我很有希望 这个插件 虽然---我们会看到。


2
2017-11-07 17:59



感谢您的详细回复!完全有道理!唯一的问题是,通常如果我与开发人员合作,他们与我不在同一个州,更不用说同一个办公室了! :-)如果有人想办法破解版本控制的数据库案例,他们将赚很多钱。我也对Site Manager抱有希望,但它不像git一样的数据库同步工具那么无缝。 - Jacob Graf
同意。框架使用一个名为的概念 迁移 它允许您将此类更改编写到DB。然后,您可以运行迁移脚本来进行更改。这里的问题是可能与数据发生冲突。即使您可以可靠地解决这些冲突,条目ID之类的内容也不会匹配,并且可能会破坏您的代码 - 具体取决于您的构建方式。一个真正的难题肯定。 - Jesse Bunch
哦,所有这些工作可能都不符合典型的EE设计师/开发人员所具有的正常日常知识。 - Jesse Bunch


答案:


你最近看过EE Profiler吗?您可能会在主页上看到20-80个查询,具体取决于它的复杂程度。

问题是,对于每个查询,MySQL必须执行远程数据请求,下载响应,然后呈现ExpressionEngine它的数据。数据库的20-80次往返是导致您延误的原因,我认为您无法做太多事情。当使用远程(我们的网络外)数据库时,我会得到与您相同的延迟。

当MySQL在您的计算机或生产服务器上运行时,它没有添加的网络请求导致其数据请求的延迟。这是不同的。

至于修复,您所能做的就是移动到内部网络上托管的数据库。我们有一台Linux机器,模仿我们用于分段的生产环境。由于它在我们的网络上,我们可以使用我们的本地IP地址 database.php 文件。这是 许多 更快。

我们仍然存在的问题是频道/字段/条目的问题。当开发人员处理新部分时,他们可能需要创建新的频道和字段和/或新条目。当我们准备将该功能推向生产时,我们必须在生产服务器上手动进行这些更改,因为无法可靠地导出它们。我很有希望 这个插件 虽然---我们会看到。


2
2017-11-07 17:59



感谢您的详细回复!完全有道理!唯一的问题是,通常如果我与开发人员合作,他们与我不在同一个州,更不用说同一个办公室了! :-)如果有人想办法