config.yml
私のファイルには基本的に、デフォルト (開発、本番環境) とテスト (テスト スイート用) の2 つの異なる Doctrine 接続があります。これが私のデフォルトの接続設定です:
# Doctrine Configuration
doctrine:
dbal:
default_connection: default
connections:
default:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
orm:
default_entity_manager: default
auto_generate_proxy_classes: %kernel.debug%
entity_managers:
default:
connection: default
metadata_cache_driver: array
query_cache_driver: array
result_cache_driver: array
mappings:
[my bundles here..]
私security.yml
の構成では、デフォルトの接続用に ACL を登録しました。
security:
acl:
connection: default
さて、ここに私の問題があります:
これらのコマンドを実行すると
./app/console doctrine:database:drop --connection=default --force
./app/console doctrine:database:create --connection=default
./app/console doctrine:schema:create --em=prod
5 つの ACL 関連テーブルが既に作成されています。余分なコマンド
./app/console init:acl
結果はAborting: The table with name 'myproject_prod.acl_classes' already exists.
その後、後で a を実行する./app/console doctrine:schema:update --dump-sql --env=prod
と、
ALTER TABLE acl_classes CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL;
ALTER TABLE acl_security_identities CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL;
ALTER TABLE acl_object_identities CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL, CHANGE parent_object_identity_id parent_object_identity_id INT UNSIGNED DEFAULT NULL, CHANGE class_id class_id INT UNSIGNED NOT NULL;
ALTER TABLE acl_object_identity_ancestors CHANGE object_identity_id object_identity_id INT UNSIGNED NOT NULL, CHANGE ancestor_id ancestor_id INT UNSIGNED NOT NULL;
ALTER TABLE acl_entries CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL, CHANGE security_identity_id security_identity_id INT UNSIGNED NOT NULL, CHANGE object_identity_id object_identity_id INT UNSIGNED DEFAULT NULL, CHANGE class_id class_id INT UNSIGNED NOT NULL, CHANGE ace_order ace_order SMALLINT UNSIGNED NOT NULL
--force を使用してこれらのリクエストを実行しても、常に同じ結果になります。テーブルはここにあり、外部キーは問題ありませんが、ドクトリンは常にメタデータと同期していないと考えます..
私のアプリではすべてが完全に機能しており、ACL はうまく機能しているので、問題があるかどうかはわかりませんが、スキーマを更新したり、スキーマを検証してこのハプニングを確認したりすると、少しイライラします。
これに関するヘルプをいただければ幸いです。
ありがとう!
編集:私はSymfony2.1 RC4を使用しています