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

Jac*_*raf 11 mysql git expressionengine

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

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

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

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

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

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

谢谢!

小智 7

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

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

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

  • 实际上,如果您使用的是MAMP或MAMP Pro,则默认情况下会禁用TCP侦听器,以获得更好的安全性和性能. (2认同)

小智 5

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

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

至于版本控制,我在我的基础存储库中保留了我的基本EE安装的SQL文件的副本.除此之外我通常不会在Git中保存数据库的副本,所以我不做很多导入/导出等.


Jes*_*nch 2

您最近查看过 EE Profiler 吗?您可能会注意到主页上有大约 20-80 个查询,具体取决于其复杂程度。

问题是,对于每个查询,MySQL 必须执行远程数据请求,下载响应,然后向 ExpressionEngine 提供其数据。20-80 次数据库往返是导致延迟的原因,我认为您对此无能为力。当使用远程(在我们的网络之外)数据库时,我遇到了与您相同的延迟。

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

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

我们仍然面临的问题是通道/字段/条目的问题。当开发人员处理新部分时,他们可能需要创建新通道和字段和/或新条目。当我们准备将该功能推向生产时,我们必须在生产服务器上手动进行这些更改,因为无法可靠地导出它们。不过,我对这个插件充满希望——我们拭目以待。