我试图通过直接从Diesel getting started guide复制examples/getting_started_step_3/
来关注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。
答案 0 :(得分:1)
您收到的编译错误听起来像是由an issue with the current nightly引起的。您可以通过从代码中删除#![feature(proc_macro)]
来解决此问题(Diesel使用的功能不再需要它)。对于您链接的示例,这是在a commit made 17 days ago中完成的。
使用夜间编译器的示例时,存在破损的高风险。对于流行的板条箱,示例会很快更新,因此您应该确保编译器和您尝试运行的示例都是最新的。幸运的是,随着1.15的发布(在不到一周的时间内,在2017-02-02上),Diesel将使用稳定的编译器,其中破损的风险要小得多。
如果以上不起作用你可以使用较旧的夜间(例如c07a6ae77 2017-01-17应该工作),只需等待问题得到解决,或等到1.15发布并使用稳定。