1

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を使用しています

4

2 に答える 2

1

問題はここで真剣に受け止められているようです: https://github.com/symfony/symfony/issues/5108

すぐに修正されると思います:)

于 2012-08-13T12:55:55.393 に答える
0

同じことが私にも起こり、2.1 rc4も実行しています

エンティティを追加し、ゲッター/セッターを生成してから、--force を使用してスキーマを更新するたびに、これらの 5 つの実行も取得します

これまで無視してきましたが、これまでのところ問題は発生していません..

于 2012-08-13T12:45:06.597 に答える