工匠迁移错误“找不到类'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver'”,
Posted
技术标签:
【中文标题】工匠迁移错误“找不到类\'Doctrine\\\\DBAL\\\\Driver\\\\PDOMySql\\\\Driver\'”,【英文标题】:artisan migration error "Class 'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver' not found",工匠迁移错误“找不到类'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver'”, 【发布时间】:2016-02-22 10:15:21 【问题描述】:当尝试运行迁移时,我收到错误 Artisan migration
错误:
Class 'Doctrine\\DBAL\\Driver\\PDOmysql\\Driver' not found
我已阅读此处的问题并查看要添加的注释:
doctrine/dbal": "~2.3
在 composer.json 的 requires 部分中
Github Bug Report
但是,我不明白发生了什么。几天前我创建了表格,没有问题。
在 composer.son 中添加该依赖项后,我不知道该怎么做。
我不想意外更新任何其他软件包。
【问题讨论】:
谢谢!什么都没有改变。我试图发布作曲家文件 你在使用 Artisan 和 Laravel 还是 Symfony2? 【参考方案1】:doctrine/dbal
依赖项需要添加到您的composer.json
composer require doctrine/dbal
更多信息请查看laravel #Modifying Columns
【讨论】:
另外,我在从 composer.json 中删除调试栏依赖项时遇到了这个问题。我确实注意到 DBAL 包被删除了,但在我运行另一个迁移之前没问题。一旦触发composer require
,我就会遇到一个“问题”:composer/package-versions-deprecated
【参考方案2】:
在我的情况下,composer install 和 composer install 都没有工作,给出了同样的错误“找不到类'Doctrine\DBAL\Driver\PDOMySql\Driver'”,
我为使其可行所做的更改如下所示
composer.json 文件已更改
"doctrine/dbal": "^3.0",
这改变了
"doctrine/dbal": "^2.0",
然后运行命令
composer update
【讨论】:
谢谢!这对我有用!【参考方案3】:你必须降级当前版本,这对我有用:
composer require doctrine/dbal:2.*
【讨论】:
【参考方案4】:如果您使用学说 3,请降级到 "doctrine/dbal": "^2.10.3"
(我不知道 laravel 是否更新了学说 3 的迁移工具。如果这样做,您应该更新 laravel 工具)。
他们重命名了班级,Doctrine\\DBAL\\Driver\\PDOMySql\\Driver
不存在
【讨论】:
现在已修复,只需运行composer update
【参考方案5】:
Laravel
谁曾经遇到过这个问题 学说/dbal”:需要“3.0”: 将其降级为
"doctrine/dbal": "^2.10".
如果您仍然遇到问题,例如获取
Laravel\Passport\Bridge\AccessToken::__toString() 不能抛出一个 异常
您应该需要 lcobucci/jwt 的先前版本。它刚刚自动更新到 3.4,这对我造成了这些问题。 我花了大约 3-4 个小时来追踪所有事情。 希望对其他人也有帮助。
composer require lcobucci/jwt 3.3.3
【讨论】:
composer require lcobucci/jwt 3.3.3
帮了忙,谢谢!【参考方案6】:
如前所述,使用composer require doctrine/dbal
,如果由于某种原因不起作用,请使用较低版本,如composer require doctrine/dbal:^2.12.1
,然后运行composer dumpautoload -o
。
【讨论】:
【参考方案7】:运行
composer update
它将安装您缺少的包,例如 PDOMySql。
或者
删除供应商文件夹并运行
composer install
【讨论】:
它不会安装任何“丢失的包”,它会安装您的composer.json
文件中指定的内容。
就我而言,仅运行“composer install”就为我解决了这个问题。我在 Windows 8.1 32 位上使用 Laravel 8.0.0。非常感谢您的帮助。【参考方案8】:
如果您要编辑数据库中的列,则会显示此消息。
要解决它:
将doctrine/dbal
依赖添加到composer.json
并使用composer require doctrine/dbal
命令
【讨论】:
【参考方案9】:# For Laravel 6x/7x:
composer require doctrine/dbal:"^2.0"
# For Laravel >= 8x:
composer require doctrine/dbal
【讨论】:
您的答案可以通过额外的支持信息得到改进。请“编辑”以添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到更多关于如何写好答案的信息:***.com/help/how-to-answer【参考方案10】:快跑
composer update
为我工作 Laravel 8
【讨论】:
【参考方案11】:如果您使用的是 laravel 7,请降级“doctrine/dbal”
来自
doctrine/dbal:"^3.1"
到
doctrine/dbal:"^2.0"
然后运行
composer update
对我有用
【讨论】:
【参考方案12】:我在使用 Laravel 8 时遇到了同样的问题。
composer require doctrine/dbal
composer update
没有帮助我解决问题。
我使用 DB::statement('SQLQuery') 来解决问题。 我使用下面的代码重命名了该列。
public function up()
Schema::table('customer_profile', function (Blueprint $table)
// $table->renameColumn('user_type_id','plan_id');
);
DB::statement('ALTER TABLE `customer_profile` CHANGE `user_type_id` `plan_id` BIGINT(20) NOT NULL;');
【讨论】:
【参考方案13】:在我的情况下,这是由于 php 的版本不符合该版本软件包的必要要求。
因此,更新到任何以前的版本都不是解决方案,您必须查看每个版本的包的要求并确认您的项目符合它们。
这里是要求的规范:https://packagist.org/packages/doctrine/dbal#3.1.3
更新库的命令是:
composer require doctrine/dbal:number_of_your_indicated_version
例如:
composer require doctrine/dbal:^2.13.5
【讨论】:
【参考方案14】:在修改列之前,请务必将教义/dbal 依赖项添加到您的 composer.json 文件中。 Doctrine DBAL 库用于确定列的当前状态并创建对列进行指定调整所需的 SQL 查询:
composer require doctrine/dbal
【讨论】:
【参考方案15】:你能分享你当前的 composer.json 吗?
composer.json 更新后,可以执行 composer install。它不会更新现有的包(因为生成了 composer.lock),它只会安装新的。
自上次迁移以来发生了什么变化?
是同一个目录下的同一个项目?如果是这样,它应该在那里。
【讨论】:
嗯不能在这里添加那么多代码。好吧,绝对没有任何改变。我不知道如何运行作曲家 getcomposer.org 安装它,然后检查How to use it 并在您的项目目录中运行composer install。【参考方案16】:好的,非常感谢您的帮助。 愚蠢的是,我读过它来执行一些其他操作,调用了丢失的驱动程序,前几天我试图运行迁移以更改列名,而我完全忘记的是后续的迁移运行仍然试图运行那么糟糕一。一旦我记住并删除了更新列名迁移,我的添加表迁移运行良好。几周后有一个项目到期,我没有包更新!
【讨论】:
【参考方案17】:我看到了这个: 要重命名列,您可以使用模式构建器上的 renameColumn 方法。在重命名列之前,请务必将教义/dbal 依赖项添加到您的 composer.json 文件中:
它可能有效。
【讨论】:
【参考方案18】:如果您在项目中使用 PhpStorm 编辑器,请打开终端选项卡并运行以下命令:
composer require doctrine/dbal
您也可以在项目的根目录中打开命令窗口并运行该命令。
【讨论】:
我相信在过去 4 年中,上述许多答案都涵盖了这一点。以上是关于工匠迁移错误“找不到类'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver'”,的主要内容,如果未能解决你的问题,请参考以下文章
工匠迁移错误“找不到类'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver'”,
工匠迁移结果:SQLSTATE [HY000]:一般错误:LUMEN / LARAVEL 上的 1005