2012-03-06 79 views
0

我需要创建一个php批处理脚本,连接到多个Magento网站,并执行一些数据库更新。他们都在同一个网络服务器上运行。连接到多个Magento网站

我希望能够创建一个单一的循环脚本,而不是多个脚本(每个网站一个)。但我也希望在php代码中使用Magento Model(app/Mage.php等)。

如何控制Magento模型使用哪个网站/数据库?

+0

这些网站是否使用单个数据库的单个Magento安装? – clockworkgeek 2012-03-09 14:13:06

+0

不,每个网站都有独立的Magento安装和数据库。 – Eydun 2012-03-11 12:25:39

回答

1

你可以编写一个脚本,它循环遍历你所有的magento安装包括他们的Mage.php并获取数据库处理程序来运行你的查询。 事情是这样的:

<?php 
$mySql = 'UPDATE ... WHERE ...;'; 
$magentos = array('/web/magento1/', '/web/magento2/'); 
foreach ($magentos as $m) { 
    require_once($m.'app/Mage.php'); 
    Mage::app('default'); 
    Mage::getSingleton('core/resource')->getConnection('core_write')->query($mySql); 
} 

或许您在你的SQL和输出您的查询的结果添加交易,以确保一切运行正常。 要控制使用哪个网站,请将网站添加到您的阵列并更改Mage :: app('default');

+0

是的,我也在考虑你的建议。但我认为它没有用。我想我还需要更改一些SERVER变量以在网站之间切换... – Eydun 2012-03-11 12:30:16