2016-09-05 2 views
0

У меня возникла ошибка sql, которая развертывает мой проект symfony в Unix. В самом деле, в запросе используются слова верхнего регистра для имен таблиц, которые раньше не были. В базе данных имена таблиц являются нижними.Настройка генерации запросов доктрины в нижний регистр

Кто-нибудь знает, где можно настроить, как вы хотите, генерация запросов производится (в верхнем или нижнем регистре)

Спасибо.

Возможно, что-то в конфигурации Doctrine ??

ПРИМЕЧАНИЕ. У меня есть новая информация.

Я попросил перестроить мою базу данных из хранилища, когда я знаю, что он работает. У меня есть некоторые ошибки, потому что для нового кода база данных должна немного отличаться от того, что было в это время, но я вижу, что в запросах имена таблиц в нижнем регистре. Я передаю свой новый sql (так же, как и раньше, плюс небольшие изменения) в командной строке.

\. path/to/my/sql 

Я запустил сайт, и запросы сделаны с именами таблиц в верхнем регистре.

Есть идеи?

пример объекта:

<?php 

namespace MyBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* MyTable 
* 
* @ORM\Table(name="mytable") 
* @ORM\Entity(repositoryClass="MyBundle\Repository\MyClassRepository") 
*/ 
class MyTable 
{ 
    /** 
    * @var string 
    * 
    * @ORM\Column(name="FIELD1, type="string", length=120, nullable=false) 
    */ 
    private $field1; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="FIELD2", type="string", length=50, nullable=true) 
    */ 
    private $field2 

    /** 
    * Set field1 
    * 
    * @param string $field1 
    * 
    * @return Tretb 
    */ 
    public function setField1($field1) 
    { 
    $this->field1 = $field1; 

    return $this; 
    } 

    /** 
    * Get field1 
    * 
    * @return string 
    */ 
    public function getField1() 
    { 
    return $this->field1; 
    } 

    /** 
    * Set field2 
    * 
    * @param string $field2 
    * 
    * @return Tretb 
    */ 
    public function setField2($field2) 
    { 
    $this->field2 = $field2; 

    return $this; 
    } 

    /** 
    * Get field2 
    * 
    * @return string 
    */ 
    public function getField2() 
    { 
    return $this->field2; 
    } 
} 
+0

Просьба представить, по крайней мере пример Entity и пример контроллера, это может MySQL помогите найти проблему. – Florian

ответ

0

не знаю, если вы можете настроить его в более общем плане, но вы можете определить таблицу таблицу для каждого объекта с доктриной

/** 
* AppBundle\Entity\MyEntity 
* 
* @ORM\Table() 
* @ORM\Entity 
* @ORM\Table(name="mytable") 
*/ 
class MyEntity 
{ 
+0

это уже как это – mlwacosmos

0

Поддерживает ли ваш экземпляр MySQL строчных tablenames ? Для проверки настроек используйте:

mysql> show variables like "lower_case%"; 

Чтобы изменить настройку, которую необходимо изменить настройки

lower_case_table_names = 1 or lower_case_table_names = 2 

Source from Stackoverflow

+0

Что такое инструкция поставить 1 или 2 в lower_case_table_names? – mlwacosmos

+0

Другое дело, что я не понимаю ... почему он не пишет sql-запросы с именами столбцов и именами таблиц, написанными, как в аннотациях? – mlwacosmos

+0

И lower_case_table_names только для чтения – mlwacosmos

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