4

Symfony2 でスキーマを更新できません。

doctrine を使用してデータベースを Symfony2 にインポートし、YML ですべての ORM ファイルを作成しました。

このメタデータからすべてのエンティティを作成しましたが、うまく機能しましたが、orm.yml ファイルを使用してデータベース スキーマを変更したい場合、データベースが更新されず、エンティティを再生成しても更新されません。

インポートにより、/src/{name}/{my}bundle/Resources/config/doctrine/metadata/orm/{table}.orm.yml に orm.yml ファイルが作成されました

エラーなしで作成されました。

私がする時:

php app/console doctrine:schema:update --dump-sql

次のように表示されます。

ALTER TABLE accounttypes CHANGE description description VARCHAR(45) NOT NULL

だから私:

php app/console doctrine:schema:update --force

と:

Updating database schema...
Database schema updated successfully! "1" queries were executed

これを何度も行うことができ、同じクエリが表示されて実行すると、完了したことが示されますが、もう一度実行する必要があることが示されます。

次に、orm.yml ファイルに移動して大幅に変更しましたが、これを行うときに常に存在するもの以外に新しいクエリは表示されません。

ファイル AccountTypes.orm.yml

Accounttypes:
  type: entity
  table: accounttypes
  fields:
    description:
      id: true
      type: string
      length: 45
      fixed: false
      nullable: false
      generator:
        strategy: IDENTITY
  lifecycleCallbacks: {  }

これに変更します。

Accounttypes:
  type: entity
  table: accounttypes
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    description:
      id: true
      type: string
      length: 50
  lifecycleCallbacks: {  }

そして、それはまだ私がする必要があることを教えてくれます:

ALTER TABLE accounttypes CHANGE description description VARCHAR(45) NOT NULL

DoctrineMigrationsBundle も使用してみましたが、同じクエリが表示され、実行が必要です。私は移住します。クエリが完了したと表示され、再度使用すると同じクエリが表示されます。

これがどのように起こっているのか誰にも分かりますか?私はこれで立ち往生しているので、どんな助けも大歓迎です。

4

2 に答える 2

2

上記の@Tomasz に従って、Symfony2 が yaml の代わりにアノテーションを使用してデータベースをセットアップしようとしないことを確認してください。

于 2015-05-08T02:44:15.493 に答える