2009-10-29 95 views
0

我正在开发一个Magento在线商店。该网站将是高流量,将需要两个服务器设置,测试和生产。在线商店(Magento)的两个服务器设置

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

我的想法是:

  • 采取生产现场下线
  • 清空测试数据库
  • 复制从生产数据库中的数据。 (也许)
  • 测试
  • 复制文件和数据库到生产现场

我知道的Magento提供了一个企业的选择,但是这是一个脚本,我想我自己写的。

回答

0

您不应该将生产站点脱机。

我会告诉你什么(你应该可以编写脚本)在生产站点上运行mysqldump -u root -ppassword db_name > db_name.sql来生成数据库的副本。然后运行rsync(你可以得到它的Linux和Windows)在文件目录到rsync到测试机器任何你想要复制的文件(图像?)

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

如果您不需要,最好不要把生产站点放下。

-1

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

你可能有兴趣知道,

  • 的Postgres有交易DDL:如果你换你的迁移脚本在一个事务中有什么东西在中间断裂,整个事情被回滚(包括DROP TABLE)

  • Postgres没有需要重写表中添加一列(MySQL的不和它很慢)

  • 如果你使用MyISAM你注定的原因有很多,其中之一是那Doi ng备份将使您的网站脱机几分钟。

+0

Magento需要MySQL与InnoDB,所以postgres不是一个选项 – 2010-08-02 06:14:37

0

您希望主/从mySQL与奴隶从奴隶数据库读取,但写入现场。这可以在local.xml文件中设置。您应该可以为文件运行rsync,使用--exclude作为var/session和var/cache文件。此外,您可能希望 - 如果它是开发服务器,则排除徽标。然后标识可以改为“测试”,所以你不要将它与Live混淆。