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

Rails测试环境SQLite数据库未执行迁移,运行rails test提示找不到stocks表

问题原因

Rails的开发、测试环境数据库相互独立,开发环境执行过迁移不会自动同步到测试环境,导致测试库缺失stocks表。

解决方案

按优先级依次执行以下操作即可解决:

  • 手动执行测试环境迁移
    直接指定环境运行迁移即可将表结构同步到测试库:
    rails db:migrate RAILS_ENV=test
    
  • 重置测试数据库(推荐)
    如果上述操作后仍然报错,直接使用Rails内置的测试库初始化命令,该命令会自动把开发环境最新的数据库schema同步到测试库,避免迁移版本不一致问题:
    rails db:test:prepare
    
  • 清理损坏的测试库文件
    要是上面两个操作都无效,大概率是旧的测试库文件损坏,先删除旧文件再重建即可:
    rm db/test.sqlite3
    rails db:test:prepare
    

注意事项

  • 每次新增/修改迁移文件后,都需要同步测试库结构,否则运行测试都会出现表缺失报错
  • Rails 5+版本内置了测试运行前自动同步迁移的逻辑,但如果存在文件权限、缓存异常的情况仍然会触发该问题,手动执行上述命令即可修复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:45:04