【问题标题】:SQL Error after runnning composer update运行作曲家更新后的 SQL 错误
【发布时间】:2016-06-05 22:46:03
【问题描述】:

我需要运行 composer update 来安装 laravelcollectives。运行后我得到:

Connection.php 第 651 行中的 QueryException: SQLSTATE[42S22]: Column not found: 1054 Field'id' is unknown where 子句(SQL: select * from users where id = 4 limit 1)

和:

Connection.php 第 319 行中的 PDOException: SQLSTATE[42S22]: Column not found: 1054 field'id' is unknown where 子句

更新前没有出现这样的错误。出了什么问题?!

【问题讨论】:

  • users 表中是否有 id 字段?
  • 我认为它是自动递增的 id 字段,它可能有不同的命名
  • 不,没有id 归档,有用户ID...但更新前字段名称相同
  • 尝试将其重命名为基本测试。
  • 刚刚将该字段重命名为id,一切正常。不幸的是,我希望将该字段命名为 userid 因为我在数据库中有其他 ID。我应该怎么做才能保留该字段的名称?

标签: php mysql sql laravel composer-php


【解决方案1】:

你真正做错的是你运行composer update安装一个包到一个工作项目中。

要将新软件包安装到已经很好的工作环境中,请始终在您的情况下使用composer require vendor/package:2.*,例如:

composer require laravelcollective/html:5.2.*

为什么从不运行composer update 来安装包?

正如命令update 已经说过的那样,它composer.json 中所需的每个包 更新到最新版本(基于您的minimum-stability 和版本标签)。是的,它还会安装新的软件包,但是如果您在运行 update 后遇到错误,您永远不知道发生了什么。是杀死您的工作项目的新软件包还是任何也更新的软件包。因此,如果您真的想更新,请只运行update,如果您想安装软件包,则永远不要运行。因此使用composer require,因为它只安装一个新包,但从不触及现有包。

【讨论】:

  • 非常感谢@Peh 提供的信息!
猜你喜欢
  • 2016-03-22
  • 1970-01-01
  • 2017-01-20
  • 2019-03-27
  • 1970-01-01
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多