Updated dependencies and created 'rust-toolchain', to mark a working nightly to rustup users, and hopefully avoid some nightly breakage.

This commit is contained in:
Daniel García
2018-06-12 17:24:29 +02:00
parent 483066b9a0
commit f72efa899e
6 changed files with 166 additions and 143 deletions

262
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -16,13 +16,13 @@ reqwest = "0.8.6"
multipart = "0.14.2"
# A generic serialization/deserialization framework
serde = "1.0.64"
serde_derive = "1.0.64"
serde_json = "1.0.19"
serde = "1.0.66"
serde_derive = "1.0.66"
serde_json = "1.0.20"
# A safe, extensible ORM and Query builder
diesel = { version = "~1.2.2", features = ["sqlite", "chrono", "r2d2"] }
diesel_migrations = { version = "~1.2.0", features = ["sqlite"] }
diesel = { version = "1.3.0", features = ["sqlite", "chrono", "r2d2"] }
diesel_migrations = { version = "1.3.0", features = ["sqlite"] }
# Bundled SQLite
libsqlite3-sys = { version = "0.9.1", features = ["bundled"] }
@ -34,7 +34,7 @@ ring = { version = "= 0.11.0", features = ["rsa_signing"] }
uuid = { version = "0.6.5", features = ["v4"] }
# Date and time library for Rust
chrono = "0.4.2"
chrono = "0.4.3"
# TOTP library
oath = "0.10.2"

View File

@ -78,7 +78,7 @@ Finally copy the contents of the `web-vault/dist` folder into the `bitwarden_rs/
## How to recreate database schemas
Install diesel-cli with cargo:
```sh
cargo install diesel_cli --no-default-features --features sqlite-bundled # Or use only sqlite to use the system version
cargo install diesel_cli --no-default-features --features sqlite-bundled
```
Make sure that the correct path to the database is in the `.env` file.
@ -91,7 +91,9 @@ diesel migration generate <name>
Modify the *.sql files, making sure that any changes are reverted in the down.sql file.
Apply the migrations and save the generated schemas as follows:
```
```sh
diesel migration redo
diesel print-schema > src/db/schema.rs
# This step should be done automatically when using diesel-cli > 1.3.0
# diesel print-schema > src/db/schema.rs
```

5
diesel.toml Normal file
View File

@ -0,0 +1,5 @@
# For documentation on how to configure this file,
# see diesel.rs/guides/configuring-diesel-cli
[print_schema]
file = "src/db/schema.rs"

1
rust-toolchain Normal file
View File

@ -0,0 +1 @@
nightly-2018-06-10

View File

@ -23,7 +23,7 @@ extern crate dotenv;
#[macro_use]
extern crate lazy_static;
use std::{io, env, path::Path, process::{exit, Command}};
use std::{env, path::Path, process::{exit, Command}};
use rocket::Rocket;
#[macro_use]
@ -46,16 +46,25 @@ fn init_rocket() -> Rocket {
// Embed the migrations from the migrations folder into the application
// This way, the program automatically migrates the database to the latest version
// https://docs.rs/diesel_migrations/*/diesel_migrations/macro.embed_migrations.html
embed_migrations!();
#[allow(unused_imports)]
mod migrations {
embed_migrations!();
pub fn run_migrations() {
// Make sure the database is up to date (create if it doesn't exist, or run the migrations)
let connection = ::db::get_connection().expect("Can't conect to DB");
use std::io::stdout;
embedded_migrations::run_with_output(&connection, &mut stdout()).expect("Can't run migrations");
}
}
fn main() {
check_db();
check_rsa_keys();
check_web_vault();
check_web_vault();
migrations::run_migrations();
// Make sure the database is up to date (create if it doesn't exist, or run the migrations)
let connection = db::get_connection().expect("Can't conect to DB");
embedded_migrations::run_with_output(&connection, &mut io::stdout()).expect("Can't run migrations");
init_rocket().launch();
}