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

时间:2012-11-07 14:39:18

标签: mysql git expressionengine

对于那些试图成为优秀小开发人员并使用git控制ExpressionEngine网站版本的人,您如何处理数据库?

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

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

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

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

对于一个开发人员,我可以非常轻松地导入/导出/提交数据库,但只要您将其他开发人员添加到混合中,就会变得非常混乱。期待听到每个人对这个庞大话题的看法。

谢谢!

4 个答案:

答案 0 :(得分:7)

对于使用远程数据库的DNS请求失败,似乎有很多时间丢失。

使用start mysqld with --skip-name-resolve启动MySQL服务器。 (有关此主题的更多信息,请访问:http://dev.mysql.com/doc/refman/5.0/en/host-cache.html

拥有远程数据库似乎仍然是我们与多个开发人员合作的最佳方式。

答案 1 :(得分:5)

我几乎总是使用中央数据库进行开发。根据您使用的主机,速度差异可能不大。

显然,如果您没有对数据库进行更改,即仅进行模板开发,则保持数据库同步不是必需的,因此您可能会调出数据库的本地副本。你必须记住重复任何数据库更改,如果你最终做了一些。

就版本控制而言,我在我的基础存储库中保留了我的基本EE安装的SQL文件的副本。除此之外,我通常不会在Git中保存数据库的副本,因此我不会进行大量的导入/导出等。

答案 2 :(得分:2)

在我的公司(4位开发人员)中,我们每个人都在本地运行自己的数据库。但最近我测试了Rackspace云数据库(但还有其他云数据库提供商),因为重型数据库很难在小型笔记本电脑上运行。它比运行我们自己的数据库服务器便宜,而且可以在一分钟内设置或删除。

答案 3 :(得分:2)

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

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

当MySQL在您的计算机或生产服务器上运行时,它没有添加的网络请求,从而导致数据请求出现延迟。这就是区别。

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

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