两个在线商店的服务器设置(Magento)

时间:2009-10-29 14:32:49

标签: php mysql magento deployment copy

我正在与Magento开发一个在线商店。该站点流量很大,需要两个服务器设置,即测试和生产。

我的问题是网上商店,特别是Magento如何处理这个?

我的想法是:

  • 使生产网站脱机
  • 清空测试数据库
  • 从Production数据库复制数据。 (也许)
  • 测试
  • 将文件和数据库复制到生产站点

我知道Magento提供了Enterprise选项,但这是我想写的一个脚本。

3 个答案:

答案 0 :(得分:0)

您不需要让生产站点脱机。

我将要生成的内容(并且您应该能够编写脚本)在生产站点上运行mysqldump -u root -ppassword db_name > db_name.sql以生成数据库的副本。然后在文件目录下运行rsync(你可以为linux和windows获取它),以rsync到测试机器上你要复制的任何文件(图像?)

对您希望投入生产的任何测试后,您可以通过以下两种方式之一进行测试。 (我更喜欢这种方法)保存您在sql文件中对数据库所做的任何更改,并在生产站点上运行该更改,同时同步任何已更改的文件。或者您可以使用mysql将所有查询记录到文件中,然后在生产站点上重新播放这些查询。

如果您不需要,最好不要关闭生产网站。

答案 1 :(得分:0)

您希望主/从mySQL与从数据库读取从属数据库,但写入实时。这可以在local.xml文件中设置。您应该能够为文件运行rsync,并为var / session和var / cache文件使用--exclude。您也可以 - 如果它是开发服务器,则排除徽标。然后可以将徽标更改为“测试”,这样您就不会将其与Live混淆。

答案 2 :(得分:-1)

实际上,如果您对数据库进行了更改,则需要在从旧代码切换到新代码时使网站脱机(即使只有几秒钟),然后运行数据库迁移脚本。

您可能有兴趣知道

  • postgres具有事务性DDL:如果您将迁移脚本包装在事务中并且中间出现中断,则会回滚整个事务(包括DROP TABLE)

  • postgres不需要重写表来添加列(MySQL确实很慢)

  • 如果你使用MyISAM,你注定会出于多种原因,其中一个原因是做备份会使你的网站离线几分钟。

相关问题