【问题标题】:Doctrine Migration Bundle: Update Error after upgrade to Version 3Doctrine Migration Bundle:升级到版本 3 后出现更新错误
【发布时间】:2020-06-17 15:38:52
【问题描述】:

最近更新了第 3 版的原则迁移,这是作为供应商库升级的一部分,所以我们现在不得不遵循 ;)

我们是这样配置的:

doctrine_migrations:
    migrations_paths:
        "DoctrineMigrations": "src/Migrations"

    storage:
        table_storage:
            table_name: 'migration_versions'
            version_column_name: 'version'
            version_column_length: 1024
            executed_at_column_name: 'executed_at'
            execution_time_column_name: 'execution_time'

我们得到以下奇怪的迁移错误。

bin/console doctrine:migrations:status 给出“一切正常”的输出:

+----------------------+----------------------+------------------------------------------------------------------------+
| Configuration                                                                                                        |
+----------------------+----------------------+------------------------------------------------------------------------+
| Storage              | Type                 | Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration |
|                      | Table Name           | migration_versions                                                     |
|                      | Column Name          | version                                                                |
|----------------------------------------------------------------------------------------------------------------------|
| Database             | Driver               | Doctrine\DBAL\Driver\PDOMySql\Driver                                   |
|                      | Name                 | dwconnect2                                                             |
|----------------------------------------------------------------------------------------------------------------------|
| Versions             | Previous             | DoctrineMigrations\Version20200522213838                               |
|                      | Current              | DoctrineMigrations\Version20200608142225                               |
|                      | Next                 | Already at latest version                                              |
|                      | Latest               | DoctrineMigrations\Version20200608142225                               |
|----------------------------------------------------------------------------------------------------------------------|
| Migrations           | Executed             | 18                                                                     |
|                      | Executed Unavailable | 0                                                                      |
|                      | Available            | 18                                                                     |
|                      | New                  | 0                                                                      |
|----------------------------------------------------------------------------------------------------------------------|
| Migration Namespaces | DoctrineMigrations   | src/Migrations                                                         |
+----------------------+----------------------+------------------------------------------------------------------------+

但是如果我们运行bin/console doctrine:migrations:migrate --no-interaction,它会抛出以下错误:

[ERROR] The version "latest" couldn't be reached, you are at version "DoctrineMigrations\Version20200608142225"  

我们的数据库看起来不错,因为我们已将其清除,并且所有迁移都在其中运行。

非常感谢任何帮助!
安德烈亚斯

【问题讨论】:

  • 看起来这是在 3.0.0 中引入的一项重大更改:github.com/doctrine/migrations/issues/987
  • 您不必强制升级,只需使用 composer unpack orm 解压 orm 并将教义迁移版本固定到 ^2

标签: doctrine-orm symfony4 doctrine-migrations


【解决方案1】:

感谢this replyoriginal github issue

bin/console doctrine:migrations:migrate --allow-no-migration --no-interaction

这会将错误转换为警告。

【讨论】:

  • 3.0.1 版现在可以优雅地处理这个问题 ;) - 看起来我们有点过于前沿了。
猜你喜欢
  • 2021-11-26
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
  • 2020-04-19
  • 2019-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多