symfony2.1プロジェクトでdoctrine2を使用しています。私は他のテーブルと多少の関係を持つ実体を持っています。これらの多対1の外部キーの関係は、データベース内ですでに更新されていますが、移行を実行するたびに更新されます。diffまたはschema:update --dump-sql外部キー関係を再度追加するために同じ更新コマンドを追加します。私がスキーマを実行するとき:それは私のマッピングが私のデータベースと同期していないことを確認します。Doctrine2の移行を停止する方法:データベースに既に存在する外部キーの関係を常に追加するのではなく、
アプリケーションが正常に動作し、リレーションシップが正常に動作していて、データベースのスキーマが正しいように見えます。なぜドクトリンはこれらの外部キーを追加しようとしていますか?ここで
は(問題のあるパラメータの1つに)私のコードです:私は私の「チケット」の実体で
:
/**
* Authenticated User who scored the ticket.
*
* @ORM\ManyToOne(targetEntity="CS\SecurityBundle\Entity\User")
* @ORM\JoinColumn(name="scoring_user_id", referencedColumnName="id")
*/
protected $scoringUser;
私は現在、それはそうそこに、一方向のように設定していますUserエンティティではinversedByはありません。それがデータベースにすでにだにもかかわらず、更新ダンプ:
は、これは私の移行またはスキーマに次のように生成
$this->addSql("ALTER TABLE tickets ADD CONSTRAINT FK_54469DF4BB0D9452 FOREIGN KEY (scoring_user_id) REFERENCES users (id)");
任意のアイデアは、私がここで間違って何をやっていますか?
1)データベースは、その制約があることを確認し、2)教義 – meze
おかげMezeのをアップグレードしよう。問題は、データベースがINNODBを使用していないため、制約を設定できないということです。 (私が正しく理解している場合)。教義をどのようにして拘束を設定しようとしないかについての考えはありますか?これは同様の質問と思われる:http://stackoverflow.com/questions/12156775/does-doctrine-2-required-foreign-keys-to-be-defined – cjewby
あなたは '@Table(name =" table_name " 、options = {"engine" = "MyISAM"}) 'または使用しているエンジンは何ですか? – cheesemacfly