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

Clojure项目使用Migratus与SQLite时出现找不到合适驱动问题

解决Migratus操作SQLite的连接错误

你的核心问题是db-spec配置错误,导致Migratus生成了无效的JDBC连接URL,进而抛出找不到驱动的错误。以下是具体修复方案:

1. 修正db-spec配置

你当前的subname值:db.sqlite3多了前缀冒号,错误的格式让Migratus误以为要连接TCP类型的数据库(如MySQL),才会出现指向127.0.0.1的错误。

正确配置方式二选一:

方式一:拆分式map配置(适配clojure.java.jdbc和Migratus)

(def db-spec 
 {:classname "org.sqlite.JDBC"
  :subprotocol "sqlite"
  :subname "db.sqlite3"}) ; 直接写文件名,会在项目根目录生成/读取数据库文件

方式二:完整JDBC URL配置

(def db-spec 
 {:url "jdbc:sqlite:db.sqlite3"}) ; 直接使用标准SQLite JDBC URL

2. 兼容性说明

Migratus 1.5.1与SQLite完全兼容,不存在兼容性问题,只要配置正确即可正常运行迁移。

3. 额外检查点

  • 确认resources/migrations目录已创建,且包含符合Migratus命名规则的迁移文件(例如001-create-users.up.sql和001-create-users.down.sql)
  • 确保项目根目录有读写权限,SQLite需要创建/写入db.sqlite3文件

内容的提问来源于stack exchange,提问作者Original BBQ Sauce

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:43:20