【问题标题】:Configure doctrine queries generation to lowercase将学说查询生成配置为小写
【发布时间】:2017-01-12 12:21:28
【问题描述】:

在 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;
  }
}

【问题讨论】:

  • 请至少提供一个示例实体和一个示例控制器,这可能有助于找到问题。

标签: database symfony doctrine


【解决方案1】:

不知道能不能配置得更笼统,但是可以用学说为每个实体定义表表

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

【讨论】:

    【解决方案2】:

    您的 MySQL 实例是否支持小写表名? 要检查设置,请使用:

    mysql> show variables like "lower_case%";
    

    要更改设置,您需要更改 mysql 设置

    lower_case_table_names = 1 or lower_case_table_names = 2
    

    Source from Stackoverflow

    【讨论】:

    • 将 1 或 2 放入 lower_case_table_names 的指令是什么?
    • 我不明白的另一件事......为什么它没有像注释中那样编写列名和表名的sql查询?
    • 如果您在 mysql 控制台中更改选项,则它不起作用。您需要在 mysql.ini 或 my.conf 文件中更改它。
    • 您能否为我们提供您代码中的示例实体?
    • 服务器配置依赖于其他人......另外,以前它曾经可以工作,尽管他们没有更改配置中的任何内容
    猜你喜欢
    • 2020-01-18
    • 2012-12-07
    • 2016-04-02
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多