複数のデータベース接続は、複数のschema.ymlを使用し、それぞれに別のconnection名をつける。
Extended Schema Syntax - The Definitive Guide to symfony Chapter 8 - Inside The Model Layer
注意点
・複数のschemaを使用する場合は、schema.ymlという名前は使わない
全てにプレフィックスをつける。プレフィックスのないschema.ymlがあると、propel-build-sqlが動作しないようだ。
例:
admin-schema.yml
client-schema.yml
・パッケージを分ける
パッケージ名は、xxx-schema.ymlのconnectionの_attributesに加える。
例:
admin-schema.yml
admin:
_attributes: { noXsd: false, package: lib.model.admin }
client-schema.yml
client:
_attributes: { noXsd: false, package: lib.model.client }
・loadData()には第2引数に接続名を渡す
$data = new sfPropelData();
//$data->setDeleteCurrentData(false);
$data_dir = sfConfig::get('sf_data_dir').DIRECTORY_SEPARATOR.'fixtures'.DIRECTORY_SEPARATOR.'admin';
$data->loadData($data_dir, 'admin');