2017-02-22 11 views
1

в моей сущности Класс я добавил несколько новых атрибутов, и я хочу обновить схему своей базы данных. Поэтому, когда я запустить PHP приложения/консольные доктрины: схемы: обновление --force им получать эту ошибку каждый раз, когдаОшибка в доктрине: схема: обновление, таблица с именем уже существует

[Doctrine\DBAL\Schema\SchemaException] 

The table with name 'postgres.day' already exists. 

и моя база данных не будет обновляться. Так кто-нибудь знает, как решить эту проблему?

Я прочитал другой вопрос с этой проблемой, но мне это не помогло. Так может ли кто-нибудь объяснить мне, что происходит, или как это решить? Благодарю.

<?php 

namespace DashboardBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* RadniNalog 
* 
* @ORM\Table() 
* @ORM\Entity 
*/ 
class RadniNalog 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="time_from", type="string", length=255) 
    */ 
    private $time_from; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="time_to", type="string", length=255) 
    */ 
    private $time_to; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="full_date_time", type="string", length=255) 
    */ 
    private $full_date_time; 

} 
+0

Что вы понимаете для доктрины app/console: schema: update --dump-sql --complete'? – lxg

ответ

-1

@ORM\Table не имя предоставляется в аннотации, которая требуется. См: Doctrine ORM | 21. Annotations Reference

@ORM\Table(name="radniNalog")

Либо не добавить аннотацию, если вы хотите, поведение по умолчанию доктрины или добавить его правильно с требуемыми опциями.

+0

Неверно, что '@ORM \ Table' требует свойства' name'. По умолчанию используется имя класса. То же самое относится и к именам свойств/столбцов. (Документы Doctrine ошибаются там.) – lxg

0

может вызвать это сообщение об ошибке, если вы хотите использовать имя таблицы, которое уже используется одним из установленных пакетов.

В вашем случае имя конфликтующей таблицы: день.

Смежные вопросы