プロジェクトに2つの異なる接続を設定しました。新しいプロジェクト用の最初のデータベース、古いデータを取得して新しいデータベースに挿入するための2番目のデータベース
私のアプリケーション.ini
; doctrine settings
doctrine.newdsn = "mysql://user:password@localhost/newdb"
doctrine.olddsn = "mysql://user:password@localhost/olddb"
doctrine.data_fixtures_path = APPLICATION_PATH "/../doctrine/data/fixtures/data.yml"
doctrine.sql_path = APPLICATION_PATH "/../doctrine/data/sql"
doctrine.migrations_path = APPLICATION_PATH "/../doctrine/migrations"
doctrine.yaml_schema_path = APPLICATION_PATH "/../doctrine/schema"
doctrine.models_path = APPLICATION_PATH "/models"
doctrine.generate_models_options.generateTableClasses = true
doctrine.generate_models_options.phpDocName = "My Name"
doctrine.generate_models_options.phpDocEmail = "myaddress@email.it"
私のBootstrap.php
/**
* initialize doctrine library
* @return Doctrine_Connection
*/
protected function _initDoctrine()
{
// retrieve options
$doctrine = $this->getOption('doctrine');
// push doctrine model autoloader
$this->getApplication()->getAutoloader()->pushAutoloader(array('Doctrine_Core', 'autoload'));
// push doctrine model autoloader
$this->getApplication()->getAutoloader()->pushAutoloader(array('Doctrine_Core', 'modelsAutoload'));
// setup doctrine attributes
$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine_Core::ATTR_AUTO_ACCESSOR_OVERRIDE, true);
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
$manager->setAttribute(Doctrine_Core::ATTR_AUTOLOAD_TABLE_CLASSES, true);
$manager->setAttribute(Doctrine_Core::ATTR_QUOTE_IDENTIFIER, true);
$manager->setAttribute(Doctrine_Core::ATTR_USE_NATIVE_ENUM, true);
// set default encoding
$manager->setCharset('utf8');
$manager->setCollate('utf8_unicode_ci');
// autoloading models
Doctrine_Core::loadModels(APPLICATION_PATH . '/models');
// creating connection
$connOld = Doctrine_Manager::connection($doctrine['olddsn'], 'olddsn');
Zend_Registry::set('olddsn', $connOld);
$connNew = Doctrine_Manager::connection($doctrine['newdsn'], 'newdsn');
Zend_Registry::set('newdsn', $connNew);
return $connDoctrine;
}
これらの構成により、両方のデータベースで簡単に読み書きできます。私の問題はcliにあります。コマンド build-all-reload, doctrine を使用して、新しいデータベースの構造を破棄して再作成すると、古いデータベースも破棄されますが、これは望ましくありません。
どうすれば修正できますか?