Destruir o relacionamento muitos para muitos deseja criar uma tabela duas vezes quando eu criar uma migração

Antes de descrever meu problema, ele pode ficar mais claro se eu começar com o erro que estou recebendo:

$ ./app/console doc:mig:diff

  [Doctrine\DBAL\Schema\SchemaException]                 
  The table with name 'user_media_area' already exists.  

Isso é absolutamente verdade -user_media_area existe. Criei-o em uma migração anterior e não entendo por que o Symfony está tentando criar a tabela novament

Meu problema tem algo a ver com um relacionamento de muitos para muitos. Eu tenho uma tabela chamadauser, uma tabela chamadamedia_area e uma tabela chamadauser_media_area.

Aqui está o código em que eu digouser sobremedia_area (Entity/User.php):

/**
 * @ORM\ManyToMany(targetEntity="MediaArea", inversedBy="mediaAreas")
 * @JoinTable(name="user_media_area",
 *      joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
 *      inverseJoinColumns={@JoinColumn(name="media_area_id", referencedColumnName="id")}
 *      )
 */
private $mediaAreas;

E aqui é onde eu digomedia_area sobreuser (Entity/MediaArea.php):

/** 
 * @ORM\ManyToMany(targetEntity="User", mappedBy="users")
 */
private $users;

O interessante é que, se eu remover esseJoinTable coisas deEntity/User.php, ./app/console doctrine:migrations:diff funcionará novamente:

/**
 * @ORM\ManyToMany(targetEntity="MediaArea", inversedBy="mediaAreas")
 */
private $mediaAreas;

No entanto, está um pouco fora: agora ele quer criar uma nova tabela chamadamediaarea, o que eu não quero. Minha tabela já existe e se chamamedia_area.

Parece que de qualquer maneira, o Symfony está tentando criar uma tabela com base nesManyToMany coisa no meuUser, e a única razão pela qual o problema desaparece quando removo oJoinTable é o nome da tabela que deseja criar mediaarea) não corresponde mais ao nome real da minha tabela media_area).

Então minha pergunta é:Por que ele deseja criar uma nova tabela? O que estou fazendo de errado

(Eu sei que é possível que minhas convenções de nomenclatura estejam desativadas. Os exemplos de banco de dados do Symfony e Doctrine são frustrantemente desprovidos de nomes de colunas com vários termos, então nem sempre sei se devo fazermedia_area oumediaArea.)

questionAnswers(2)

yourAnswerToTheQuestion