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

执行Hanami db migrate报错,数据插入后未写入SQLite问题求助

Hanami项目数据库迁移与数据插入问题排查

问题梳理

  • 执行bin/hanami db migrate时,数据库迁移提示完成,但结构导出失败,报错信息如下:
=> database db/bookshelf.sqlite migrated in 0.2763s
Error: in prepare, near "projects": syntax error
  projects/bookshelf/db/bookshelf.sqlite
  ^--- error here
!!! => "db/bookshelf.sqlite structure dumped to config/db/structure.sql" FAILED
  • 在Hanami开发控制台执行数据插入命令后,数据库无数据写入,网站也无法显示书籍列表。

可能的操作错误点排查

  • 数据库路径配置错误:报错中的路径projects/bookshelf/db/bookshelf.sqlite包含多余的projects/前缀,检查config/database.yml中的数据库路径配置,确认是否与项目实际目录结构匹配。如果项目根目录为bookshelf,路径应直接写db/bookshelf.sqlite。
  • 迁移未真正生效:虽然迁移提示完成,但结构导出失败可能意味着数据库结构未正确创建。用DB Browser for SQLite打开db/bookshelf.sqlite,确认books表是否存在。
  • 控制台环境不匹配:确认执行插入命令的控制台是否连接到development环境的数据库。检查控制台启动时的环境标识,或核对config/database.yml中development节点的数据库路径。
  • 事务未提交:Hanami控制台默认可能开启事务,插入操作若未提交不会写入数据库。尝试在插入后执行事务提交命令(如Hanami::Model::Transaction.commit,根据Hanami版本调整),或检查控制台是否开启自动提交。

需要补充的信息

  • config/database.yml的完整内容
  • db/migrate/目录下的迁移文件内容
  • 执行控制台插入命令后的完整输出(包括命令返回值)
  • 项目的目录结构(重点是db/和config/db/的位置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:12:36