SeaORM执行sea-orm-cli migrate报错sqlite连接串无支持驱动
报错根因
执行sea-orm-cli migrate时触发的no supporting driver报错,和你项目Cargo.toml里的sea-orm配置无关:
- 你在项目依赖里开启的
sqlx-sqlite特性,仅作用于项目内部引入的sea-orm库 - 全局通过cargo安装的
sea-orm-cli是独立编译的二进制程序,默认不会继承项目的依赖特性,默认编译产物没有包含sqlite驱动,才会识别不了sqlite://test.db连接串
修复方案
卸载原有默认安装的sea-orm-cli,重新安装时手动指定需要的数据库驱动特性即可:
# 先卸载原有无驱动的版本 cargo uninstall sea-orm-cli # 安装带sqlite驱动、匹配0.8大版本的cli cargo install sea-orm-cli --version "^0.8" --features "sqlx-sqlite runtime-tokio-rustls"
如果后续需要同时操作MySQL、PostgreSQL数据库,可以在安装特性里追加对应数据库的驱动标识:
cargo install sea-orm-cli --version "^0.8" --features "sqlx-sqlite sqlx-mysql sqlx-postgres runtime-tokio-rustls"
安装完成后重新执行sea-orm-cli migrate命令即可正常连接sqlite数据库执行迁移。
如果不想全局安装固定特性的cli,也可以把sea-orm-migration作为dev依赖加入项目,直接通过项目内的迁移入口执行命令,这种方式会自动复用你项目里配置的sea-orm特性,不需要单独给cli编译驱动。
内容的提问来源于stack exchange,提问作者Qwertie
相关产品推荐
相关产品推荐

