Проблема различных конфигов для разных сред легко решается с помощью Zend_Config.См. Раздел конфигурации в кратком обзоре:
http://framework.zend.com/manual/en/learning.quickstart.create-project.html
Это позволяет вам указать различные настройки для каждой среды.
Что касается схем, я предполагаюу вас есть несколько таблиц, которые живут в Production_Foo и другие, которые живут в Production_Bar.Рассмотрим расширение Zend_Db_Table для каждой из этих схем и указание на правильную базу данных во время построения.
Конструктор Zend_Db_Table определяется следующим образом:
public function __construct($config = array(), $definition = null)
{ ... }
Когда мы проследим, чтобы увидеть, где $определение приводит к тому, что вы можете передать массив, который загружен в Zend_Db_Table_Definition.Одной из опций для этого является имя таблицы:
/**
* @param string $tableName
* @param array $tableConfig
* @return Zend_Db_Table_Definition
*/
public function setTableConfig($tableName, array $tableConfig)
{
// @todo logic here
$tableConfig[Zend_Db_Table::DEFINITION_CONFIG_NAME] = $tableName;
$tableConfig[Zend_Db_Table::DEFINITION] = $this;
if (!isset($tableConfig[Zend_Db_Table::NAME])) {
$tableConfig[Zend_Db_Table::NAME] = $tableName;
}
$this->_tableConfigs[$tableName] = $tableConfig;
return $this;
}
Что касается вашей схемы, вы просто передаете другой набор параметров для адаптера db, который указывает на правильный.