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

Rust项目用embed_migrations连PostgreSQL报错及版本适配咨询

解决Diesel embed_migrations!找不到migrations目录的错误

你的错误提示Unable to find migrations directory和版本无关,核心是migrations目录的位置不符合Diesel的默认约定,或者宏没有指定正确的路径。以下是具体解决步骤:

1. 确认migrations目录的正确位置

Diesel默认会在项目根目录(也就是Cargo.toml所在的目录)查找migrations文件夹,而不是src子目录下。需要确保项目根目录下存在这个文件夹。

如果还没有创建migrations目录,用Diesel CLI生成:
首先安装适配PostgreSQL的Diesel CLI:

cargo install diesel_cli --no-default-features --features postgres

然后在项目根目录执行初始化命令:

diesel setup

这个命令会自动创建migrations目录和对应的数据库配置文件。

2. 手动指定migrations路径(如果目录位置特殊)

如果你的migrations目录不在项目根目录,需要给embed_migrations!宏传入自定义路径参数,比如:

use diesel_migrations::embed_migrations;

// 替换成你实际的migrations目录路径
embed_migrations!("./custom/path/migrations");

pub fn init() {
    lazy_static::initialize(&POOL);
    let conn = connection().expect("Failed to connect");
    embedded_migrations::run(&conn).unwrap();
}

3. 版本兼容性验证(无需调整版本)

你当前使用的diesel 1.4.x和diesel_migrations 1.4.0版本是严格匹配的,不存在版本兼容问题,不需要修改版本号。

验证步骤

  1. 确认migrations目录在项目根目录,且包含至少一个迁移文件(可以用diesel migration generate create_users生成测试迁移)
  2. 重新运行程序,错误应该消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 04:54:54