2017-08-16 36 views
0

我正在使用postgres數據庫和FOSUserBundle一起使用原則。出於某種原因,每次我嘗試運行doctrine:schema:update時,它都會嘗試創建用戶表,儘管它已經存在。主義不斷嘗試重新創建現有的表

我不得不將模式設置爲用戶表以在實體中公開,因爲FOS會在其他模式中發生錯誤。然而,從實體中刪除此註釋將會阻止它嘗試重新創建表。

實體的定義如下:

<?php 

namespace AppBundle\Entity; 

use FOS\UserBundle\Model\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Table(name="user", schema="public") 
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository") 
*/ 
class User extends BaseUser { 
    ... 
} 

和學說一直試圖與schema="public"集的實體來執行查詢是:

CREATE SEQUENCE public.user_id_seq INCREMENT BY 1 MINVALUE 1 START 1; 
CREATE TABLE public."user" (id INT NOT NULL, username VARCHAR(180) NOT NULL, username_canonical VARCHAR(180) NOT NULL, email VARCHAR(180) NOT NULL, email_canonical VARCHAR(180) NOT NULL, enabled BOOLEAN NOT NULL, salt VARCHAR(255) DEFAULT NULL, password VARCHAR(255) NOT NULL, last_login TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL, password_requested_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, roles TEXT NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, PRIMARY KEY(id)); 
CREATE UNIQUE INDEX UNIQ_327C5DE792FC23A8 ON public."user" (username_canonical); 
CREATE UNIQUE INDEX UNIQ_327C5DE7A0D96FBF ON public."user" (email_canonical); 
CREATE UNIQUE INDEX UNIQ_327C5DE7C05FB297 ON public."user" (confirmation_token); 

如果我的schema="public"標籤添加到任何我的其他實體,他們表現出相同的行爲,但沒有它,他們工作得很好。只是,確實與FOSUserBundle以下消息試圖創建例如用戶在不工作的用戶實體:

SQLSTATE[42703]: Undefined column: 7 ERROR: column t0.username does not exist 
LINE 1: SELECT t0.username AS username_1, t0.username_canonical AS u... 

回答

0

這是教義中的錯誤與Postgres的使用時。我一直都有遷移問題。我只是刪除了違規行,一切都很好。 @Enumus是正確的,你必須反標你的註釋。

/** * User * * @ORM\Table(name="用戶​​

相關問題