升级学说迁移

时间:2020-02-15 14:45:00

标签: symfony doctrine

我在我的代码库上收到此警告,这是我的composer

Package zendframework/zend-eventmanager is abandoned, you should avoid using it. Use laminas/laminas-eventmanager instead.

因此我需要升级Doctrine Migrations bundle,但似乎无法升级,也找不到升级日志。 首先,我得到关于Doctrine\DBAL\Migrations\AbstractMigration的错误,因此我将它们全部替换为Doctrine\Migrations\AbstractMigration。现在我得到

Compile Error: Declaration of Application\Migrations\Version20170927104049::up(Doctrine\DBAL\Schema\Schema $schema) must be compatible with Doctrine\Migrations\AbstractMigration::up(Doctrine\DB  
  AL\Schema\Schema $schema): void

我要求更改日志https://github.com/doctrine/DoctrineMigrationsBundle/issues/296

但是任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

该错误告诉您您的函数与抽象函数不兼容,您是否忘记将返回类型添加到函数中?

做到:

public function up(Schema $schema) : void {}

答案 1 :(得分:0)

您应该首先通过composer upgrade升级软件包-例如,在您的composer.lock中,您使用的ocramius/proxy-manager在该捆绑包中已有近三年的版本,并且这需要废弃的包装。名称从zendframework/zend-eventmanager更改为laminas/laminas-eventmanager是在2019年进行的。

下一步可能是升级约束,以便您甚至需要更新的软件包。例如,doctrine/doctrine-migrations-bundlesymfony/swiftmailer-bundle的更新版本要多得多,并且不时更新它们有助于避免出现问题。随着已安装版本与最新版本之间的差距越来越大,升级过程也变得越来越复杂。

另一方面:如果您的代码仍能正常工作,则可以忽略该警告。它告诉您,给定的软件包毕竟不会收到任何更新,但这并不意味着您会立即处于危险之中