複数のデータベース接続

複数のデータベース接続は、複数の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');

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください