我在Unix上部署symfony项目时出现sql错误。实际上,查询对表名使用大写,而以前并非如此。在数据库中,表名是小写的。
是否有人知道您在何处配置生成查询的方式(大写或小写)
谢谢。
也许是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 :(得分:0)
不知道你是否可以更普遍地配置它,但你可以为每个具有教义的实体定义表格表
/**
* AppBundle\Entity\MyEntity
*
* @ORM\Table()
* @ORM\Entity
* @ORM\Table(name="mytable")
*/
class MyEntity
{
答案 1 :(得分:0)
您的MySQL实例是否支持小写表名? 要检查设置,请使用:
mysql> show variables like "lower_case%";
要更改设置,您需要更改mysql设置
lower_case_table_names = 1 or lower_case_table_names = 2