我正在与Magento开发一个在线商店。该站点流量很大,需要两个服务器设置,即测试和生产。
我的问题是网上商店,特别是Magento如何处理这个?
我的想法是:
我知道Magento提供了Enterprise选项,但这是我想写的一个脚本。
答案 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,你注定会出于多种原因,其中一个原因是做备份会使你的网站离线几分钟。