Azi*_*ina 31 php error-handling metadata symfony
每次我尝试使用命令行进行迁移时,我都会遇到这个问题:php bin/console make:migration
或者即使doctrine:migration status
当我尝试doctrine:migration:sync-metadata-storage
他们告诉我时,我仍然收到相同的错误消息。
我目前正在学习 symfony 并且一直在遵循指南,但我以某种方式遇到了这个问题 Symfony 4.4 php 7.2
Mee*_*Wel 93
尝试将 .env 中的 DATABASE_URL 从
DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=10.4.11
Run Code Online (Sandbox Code Playgroud)
到
DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=mariadb-10.4.11
Run Code Online (Sandbox Code Playgroud)
Symfony 文档建议指定版本号而不是数据库类型
“您可以在 config/packages/doctrine.yaml 中配置更多选项,包括您的 server_version(例如,如果您使用的是 MySQL 5.7,则为 5.7),这可能会影响 Doctrine 的功能。” https://symfony.com/doc/current/doctrine.html
原答案:https : //github.com/doctrine/DoctrineMigrationsBundle/issues/337#issuecomment-645390496
uti*_*vid 26
对我来说,在服务器版本前加上 mariadb-xxx 就足够了,它解决了这个问题。
“如果您正在运行 MariaDB 数据库,您应该在 serverVersion 前面加上 mariadb-(例如:mariadb-10.2.12)。”
小智 15
如果我改变DATABASE_URL
in.env
从:
DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=10.4.11
Run Code Online (Sandbox Code Playgroud)
到:
DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=mariadb-10.4.11
Run Code Online (Sandbox Code Playgroud)
zoo*_*ore 10
交响乐5.1
如果你有:
指定的平台版本“maridb-10.4.13”无效。平台版本必须以以下格式指定:“<major_version>.<minor_version>.<patch_version>”。
只做其中之一
配置/doctrine.yaml
doctrine:
dbal:
server_version: 'mariadb-10.4.13'
Run Code Online (Sandbox Code Playgroud)
或者在配置文件.env中
DATABASE_URL=mysql://databaseUsername:UserPassword@localhost:3306/databaseName?serverVersion=mariadb-10.4.13
Run Code Online (Sandbox Code Playgroud)
小智 7
升级到 Doctrine migrations 3 后我遇到了同样的问题
似乎很多东西都发生了变化,包括存储迁移版本的表名:(
所以我更新了config/packages/doctrine_migrations.yaml
,创建了一个新的(空白)迁移,清除了缓存(以防万一),一切都很好:)
doctrine_migrations:
migrations_paths:
# namespace is arbitrary but should be different from App\Migrations
# as migrations classes should NOT be autoloaded
'DoctrineMigrations': '%kernel.project_dir%/src/Migrations'
storage:
# Default (SQL table) metadata storage configuration
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'
Run Code Online (Sandbox Code Playgroud)
顺便提一句。文档是最新的 ;) https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html
小智 6
改变
DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=10.4.11
Run Code Online (Sandbox Code Playgroud)
到
DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=mariadb-10.4.11
Run Code Online (Sandbox Code Playgroud)
小智 0
我也有同样的问题,是因为新版本的doctrine migration 3.0
php bin/console debug:config DoctrineMigrationsBundle
Run Code Online (Sandbox Code Playgroud)
https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html