如何解决将 Symfony 从 3 升级到 4 出现错误:“没有注册的迁移”
尝试将项目从 Symfony 3.x 升级到 4.4,但遇到了一些有关学说迁移的问题。
目前在尝试运行迁移时,我收到此错误:
[ERROR] 无法访问“最新”版本,没有注册 迁移。
运行以下命令打印我的学说配置时:
php app/console config:dump-reference doctrine_migrations
它基本上给了我默认的学说迁移配置信息。
目前该项目不使用 Symfony Flex,因为我怀疑这会影响此配置在项目中的位置。我的 config/config.yml
文件中有 Doctrine 配置。
doctrine_migrations:
# A list of namespace/path pairs where to look for migrations.
migrations_paths:
# Prototype
'DoctrineMigrations': '%kernel.project_dir%/src/Migrations'
# Storage to use for migration status metadata.
storage:
# The default metadata storage,implemented as a table in the database.
table_storage:
table_name: 'migrations'
version_column_name: 'version'
运行学说迁移命令返回
+------------+----------------------+------------------------------------------------------------------------+
| Configuration |
+------------+----------------------+------------------------------------------------------------------------+
| Storage | Type | Doctrine\Migrations\Metadata\Storage\TableMetadataStorageConfiguration |
| | Table Name | doctrine_migration_versions |
| | Column Name | version |
|------------------------------------------------------------------------------------------------------------|
| Database | Driver | Doctrine\DBAL\Driver\PDO\PgSQL\Driver |
| | Name | api |
|------------------------------------------------------------------------------------------------------------|
| Versions | Previous | 0 |
| | Current | 0 |
| | Next | Already at latest version |
| | Latest | 0 |
|------------------------------------------------------------------------------------------------------------|
| Migrations | Executed | 0 |
| | Executed Unavailable | 0 |
| | Available | 0 |
| | New | 0 |
+------------+----------------------+------------------------------------------------------------------------+
如您所见,表名等与配置中的内容不匹配。我相信我在这里缺少一些东西来运行迁移,但似乎无法弄清楚
解决方法
symfony4 中默认没有 config/config.yml
文件。好像忽略了这个文件。
将您的 doctrine_migrations:
部分从 config/config.yml
移至 config/packages/doctrine_migrations.yaml
文件
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。