工匠迁移错误“找不到类'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'”,的主要内容,如果未能解决你的问题,请参考以下文章

工匠迁移:laravel 5.3 中的回滚错误

工匠迁移错误“找不到类'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver'”,

Laravel Php 工匠制作迁移错误

工匠迁移结果:SQLSTATE [HY000]:一般错误:LUMEN / LARAVEL 上的 1005

Laravel 8 Gate 基于数据库工匠迁移错误中的级别

php工匠迁移。定义了多个主键