2016-11-20 56 views
1

我正在使用Symfony2与Doctrine和PostgreSQL作为数据库引擎的项目,我有问题。当我试图改变实体后做app/console doctrine:schema:update --force我得到这个错误:主义Symfony2列已经存在

enter image description here

这是我的实体类代码:

use Doctrine\ORM\Mapping as ORM; 

/** 
* LostConversation 
* 
* @ORM\Table(name="lost_conversation") 
* @ORM\Entity(repositoryClass="AppBundle\Repository\LostConversationRepository") 
*/ 
class LostConversation 
{ 

    const MAXSREENSHOTS = 50; 
    const SCREENSHOT_TIMEOUT = 10; 
    const MESSAGE_TIMEOUT = 30; 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var int 
    * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Room", cascade={"all"}) 
    * @ORM\JoinColumn(name="room_id", referencedColumnName="id", nullable=false) 
    */ 

    private $room; 

    /** 
     * @var string 
     * @ORM\Column(name="file_name ", type="string",length=40, nullable=true) 
     */ 

    private $fileName; 


    /** 
     * @var string 
     * @ORM\Column(name="message ", type="string",length=140, nullable=true) 
     */ 
    private $message; 

    /** 
    * @var int 
    * @ORM\ManyToOne(targetEntity="UserBundle\Entity\User", cascade={"all"}) 
    * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) 
    */ 

    private $user; 

    /** 
    * @var int 
    * @ORM\Column(name="insd", type="integer") 
    */ 

    private $insd; 

感谢每一个答案! :)

+0

检查数据库的实际状态。可能你有两列:新旧。 –

回答

2

你必须在$fileName领域的列名的额外空间:

/** 
* @ORM\Column(name="file_name ", type="string",length=40, nullable=true) 
           ^extra space here 

删除它,它应该工作。

$message的注释有同样的问题。

+0

是的,它的工作表示感谢,没有看到:) – Syeth