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

Laravel集成waavi/translation执行迁移报错的解决方法

解决waavi/translation迁移时找不到表的死循环问题

问题描述

我有一个集成了waavi/translation模块的Laravel项目,数据库为全新状态,无任何数据表。执行迁移命令:

php artisan migrate

时出现如下错误:

In Connection.php line 712:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'abc.ai_translator_translations' doesn't exist (SQL: select * from ai_translator_translations where locale = pl and namespace = * and group = *)

In Exception.php line 18:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'abc.ai_translator_translations' doesn't exist

In PDOConnection.php line 82:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'abc.ai_translator_translations' doesn't exist

尝试单独执行该模块的迁移命令:

php artisan migrate --path=./modules/translation/database/migrations

仍出现相同错误,陷入无法执行模块迁移的死循环。

解决方案

1. 临时禁用模块服务提供者

打开config/app.php,找到waavi/translation对应的服务提供者(通常是Waavi\Translation\TranslationServiceProvider::class),将这一行注释掉。这样Laravel启动时不会加载该模块的服务,避免迁移前触发不存在表的查询。

2. 执行模块迁移

此时运行指定路径的迁移命令:

php artisan migrate --path=./modules/translation/database/migrations

由于模块服务未加载,不会触发预查询,迁移将正常执行并创建所需数据表。

3. 恢复服务提供者

迁移完成后,取消config/app.php中服务提供者的注释,恢复模块的正常加载。

4. 清除配置缓存(可选)

如果之前生成过配置缓存,执行以下命令清除:

php artisan config:clear

补充排查点

  • 确认模块迁移文件确实存在于./modules/translation/database/migrations路径下,若路径不符,调整命令中的路径参数。
  • 检查.env文件中的数据库配置,确保连接的是目标数据库abc。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:52:36