TL; DR:尝试在错误发生之前修复错误,而不是在错误发生时修复,如相关问题
首先:我知道错误说要为数据库运行升级脚本。
但是:我在 Docker 中运行它。删除容器和图像并创建一个新的干净实例后,我也收到此错误。
该数据库由 Doctrine 创建,为 MariaDB 10.5.8 配置(与 Docker 中的数据库配置相同(见下文))。
但是,在转储表、重新创建 db 架构然后刷新 IDE (PhpStorm) 中的设置后,我收到以下通知:
Error encountered when performing Introspect schema workflow_poc: Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 50731, now running 100508. Please use mariadb-upgrade to fix this error.
Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 50731, now running 100508. Please use mariadb-upgrade to fix this error
从那我读到架构是使用 MariaDB 5.7 配置创建的,现在我们正在运行 MariaDB 10.5。但是,我在此设置中没有使用 5.7 版。
关于如何在错误出现之前解决这个问题并且没有黑客在某处包含升级命令的任何想法?
码头工人配置:
db:
image: library/mariadb:10.5.8
volumes:
- "mysql_data:/var/lib/mysql:delegated"
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-project_name}
- MYSQL_DATABASE=${MYSQL_DATABASE:-project_name}
- MYSQL_USER=${MYSQL_USER:-project_name}
- MYSQL_PASSWORD=${MYSQL_PASSWORD:-project_name}
- TZ=Europe/Amsterdam
ports:
- "${MYSQL_PORT:-30026}:3306"
Symfony Doctrine 配置doctrine.yaml
doctrine:
dbal:
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
driver: 'pdo_mysql'
server_version: 'mariadb-10.5.8'
url: '%env(resolve:DATABASE_URL)%'