2016-09-05 4 views
0

私のsymfonyプロジェクトをUnixにデプロイする際にSQLエラーが発生しました。実際、以前にはなかったテーブル名には大文字が使用されています。データベースでは、テーブル名は小文字です。あなたは、クエリの生成が doctrineクエリの生成を小文字に設定してください

ありがとう(大文字または小文字)行うことがしたい方法を設定どこ

は誰もが知っています。

多分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

を設定MySQLを変更する必要がある設定を変更するには、この5月、少なくとも例エンティティと例コントローラを提供してください。問題の発見に役立ちます。 – Florian

答えて

0

いけない、あなたのMySQLインスタンスが小文字テーブル名をサポートしていますが、より一般的にそれを設定することができれば知っているが、あなたは教義

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

これは既にこのようです – mlwacosmos

0

と各エンティティのテーブルのテーブルを定義することができます?設定を確認するには を使用します。

mysql> show variables like "lower_case%"; 

をあなたは

lower_case_table_names = 1 or lower_case_table_names = 2 

Source from Stackoverflow

+0

lower_case_table_namesに1または2を入れる命令は何ですか? – mlwacosmos

+0

もう1つのことは私が得ない...なぜそれはアノテーションのように記述された列名とテーブル名を持つSQLクエリを記述していないのですか? – mlwacosmos

+0

lower_case_table_namesは読み取り専用 – mlwacosmos

関連する問題