You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署新数据库时Doctrine迁移报错:不存在doctrine_migration_versions表

Doctrine迁移执行失败问题解决

问题描述

我有一个使用Doctrine管理迁移的应用,开发阶段运行正常,但在新数据库部署时迁移命令执行失败。

可成功执行数据库创建命令:

php bin/console doctrine:database:create --if-not-exists

该命令能正常连接数据库,完成创建或检测到数据库已存在后跳过,无连接类问题。

但执行迁移命令时失败:

php bin/console doctrine:migrations:migrate

抛出以下错误:

In TableDoesNotExist.php line 16:
                                                                            
  [Doctrine\DBAL\Schema\Exception\TableDoesNotExist (10)]                   
  There is no table with name "doctrine_migration_versions" in the schema. 

我对Doctrine不太熟悉,不清楚错误含义,请问如何解决?这是新环境配置问题吗?

解决方案

这个错误的核心原因是:Doctrine迁移依赖的doctrine_migration_versions表不存在。这张表用于记录已执行的迁移版本,新创建的空白数据库默认没有这张表,需要先初始化。

解决步骤

  • 首先执行迁移初始化命令,创建必要的版本记录表:
php bin/console doctrine:migrations:install
  • 完成后重新运行迁移命令:
php bin/console doctrine:migrations:migrate

额外排查点

如果执行上述步骤后仍有问题,可以检查:

  • 确认新环境的数据库连接配置(如.env文件)中的数据库名、用户名、密码正确,且与doctrine:database:create使用的是同一套配置
  • 确保数据库用户拥有创建表的权限,避免因权限不足导致初始化表失败

内容的提问来源于stack exchange,提问作者jja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:58:19