Невозможно начать работать с diesel.rs и Rust 1.16 по ночам

Я пытаюсь следовать руководству по началу работы с Diesel, напрямую копируя examples/getting_started_step_3/ из репозитория Diesel GitHub, но я сталкиваюсь с некоторыми ошибками компиляции, которые я не могу исправить:

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.

1 ответ

Решение

Ошибка компиляции, которую вы получаете, звучит так, как будто она вызвана проблемой с текущей ночной. Вы, вероятно, можете это исправить, удалив #![feature(proc_macro)] из вашего кода (он больше не нужен для функции, используемой Diesel). В приведенном вами примере это было сделано в коммите, сделанном 17 дней назад.

При работе с примерами для ночного компилятора существует высокий риск поломки. Для популярных ящиков примеры обновляются довольно быстро, поэтому вы должны убедиться, что и ваш компилятор, и примеры, которые вы пытаетесь запустить, актуальны. К счастью, с выпуском 1.15 (менее чем за неделю, 2017-02-02) Diesel будет работать со стабильным компилятором, где риск поломки намного меньше.

Если вышеперечисленное не работает, вы можете использовать более старую ночную версию (например, c07a6ae77 2017-01-17 должен работать), просто подождите, пока проблема не будет устранена, или дождитесь выхода 1.15 и используйте стабильную версию.

Другие вопросы по тегам