无法开始使用 diesel.rs 和 Rust 1.16 nightly

Unable to get started with diesel.rs and Rust 1.16 nightly

我正在尝试遵循 Diesel getting started guide by directly copying examples/getting_started_step_3/ from the Diesel GitHub repo,但我遇到了一些我无法修复的编译错误:

cargo build 
   Compiling diesel_demo_step_3 v0.1.0 (file:///home/stamm/code/rustsome/pkiexpress)
error: macro undefined: 'options!'
 --> src/schema.rs:1:1
  |
1 | infer_schema!("dotenv:DATABASE_URL");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in a macro outside of the current crate

error: macro undefined: 'table_name!'
  --> src/models.rs:12:1
   |
12 | #[table_name="posts"]
   | ^^^^^^^^^^^^^^^^^^^^^

这是我的 .env:

DATABASE_URL=postgres://postgres:password@localhost/pkiexpress

我正在使用 Rust 1.16.0-nightly (df8debf6d 2017-01-25) 和 Diesel 0.9.0。

您收到的编译错误听起来像是由 an issue with the current nightly. You can probably fix it by removing #![feature(proc_macro)] from your code (it should no longer be needed for the feature Diesel uses). For the example you linked, this was done in a commit made 17 days ago.

引起的

使用每晚编译器的示例时,出现损坏的风险很高。对于流行的 crate,示例更新得非常快,因此您应该确保您的编译器和您尝试 运行 的示例都是最新的。幸运的是,随着 1.15 的发布(不到一周,2017 年 2 月 2 日),Diesel 将与稳定的编译器一起工作,破坏的风险要小得多。

如果以上方法不起作用,您可以使用较旧的 nightly(例如 c07a6ae77 2017-01-17 应该可以),只需等待问题解决,或者等到 1.15 发布并使用稳定版。