无法在Rust / Actix应用程序中将计时功能与柴油一起使用

问题描述

我还是Rust的新秀。

我尝试在某些柴油模型中使用NaiveDateTime。

因此,我尝试像这样将chrono作为外部箱子导入:

src / db / models.rs

extern crate diesel;
extern crate chrono;

use diesel::{sql_types};
use chrono;

// model implementations follow below ...

但是我收到一个生锈的错误消息:

can't find crate for `chrono`: can't find crate

chrono被宣布为柴油机功能。我的Cargo.toml看起来像这样:

[package]
name = "backend"
version = "0.1.0"
authors = ["My Name <my@emai.l>"]
edition = "2018"

[dependencies]
actix-web="3"
diesel= { version = "1.4.5",features = ["MysqL","chrono"] }
dotenv= { version = "0.15.0" }

[[bin]]
name = "main"
path = "src/main.rs"

我在做什么错了?

解决方法

您需要自行安装chrono

[dependencies]
actix-web = "3"
chrono = "0.4"
diesel = { version = "1.4.5",features = ["mysql","chrono"] }
dotenv = { version = "0.15.0" }

chrono上添加diesel功能只会使diesel依赖于chrono进行编译,并通过粘合代码对其进行集成。但是,要在您自己的板条箱中使用chrono,您仍然必须在Cargo.toml中对其进行声明。