2

スキーマをエンティティ自体のオプションとして設定できるようですが、パブリック スキーマの外部でエンティティを生成するオプションはありますか?

パブリックスキーマで機能するものは次のとおりです

php app/console doctrine:mapping:convert xml ./src/Acme/BlogBundle/Resources/config/doctrine/metadata/orm --from-database --force
php app/console doctrine:mapping:import AcmeBlogBundle annotation
php app/console doctrine:generate:entities AcmeBlogBundle

多分このようなもの:

php app/console doctrine:mapping:convert xml schema=Foo  ./src/Acme/BlogBundle/Resources/config/doctrine/metadata/orm --from-database --force

参考までに、PostgreSQL 8.x と 9.x をデータベースとして使用し、問題があれば Symfony 2.1.3 を使用します。

アップデート:

これは私が探しているものだと思いますが、スキーマ配列の値を設定する方法が必要です:

/**
 * Sets the table name.
 *
 * @param string $name
 *
 * @return ClassMetadataBuilder
 */
public function setTable($name)
{
    $this->cm->setPrimaryTable(array('name' => $name));

    return $this;
}

更新 #2

接続設定でこれを設定することは可能かもしれないと思います

元の構成

# Doctrine Configuration
doctrine:
    dbal:
      default_connection: my_database
      connections:
        my_database:
          driver:   pdo_pgsql
          port:     5432
          dbname:   bar
          user:     foo_user
          password: foo_pass
          charset:  UTF8

スキーマを設定します。

# Doctrine Configuration
doctrine:
    dbal:
      default_connection: my_database
      connections:
        my_database:
          driver:   pdo_pgsql
          port:     5432
          dbname:   bar/Foo
          user:     foo_user
          password: foo_pass
          charset:  UTF8
4

2 に答える 2

0

指摘しておきたいのは、次の場合です。

ALTER USER foo_user SET search_path=foo;

次に、特に指定されていないものはすべて、スキーマ foo に作成されます。Doctrine で解決できない場合は、PostgreSQL で解決できます。

于 2013-11-18T07:49:45.933 に答える
0

私は Symfony 3 を使用しており、3 つの異なるスキーマを取得しています。エンティティを生成するには、次の--filterオプションを使用します。

./bin/console doctrine:mapping:import --force --filter="Schema_name." MyBundle xml

次に、他のコマンドを実行してエンティティを生成します。私にとっては完璧に動作します

編集。最後に、スキーマ名は大文字で始める必要があります

于 2018-01-09T19:54:47.753 に答える