Skip to content

Update to Diesel 1.0.0-beta1 #1204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 21, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 25 additions & 25 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ htmlescape = "0.3.1"
license-exprs = "^1.3"
dotenv = "0.10.0"
toml = "0.4"
diesel = { version = "0.99.0", features = ["postgres", "serde_json", "chrono"] }
r2d2-diesel = "0.99.0"
diesel_full_text_search = "0.99.0"
diesel = { version = "1.0.0-beta1", features = ["postgres", "serde_json", "chrono"] }
r2d2-diesel = "1.0.0-beta1"
diesel_full_text_search = "1.0.0-beta1"
serde_json = "1.0.0"
serde_derive = "1.0.0"
serde = "1.0.0"
Expand Down Expand Up @@ -82,5 +82,5 @@ tokio-service = "0.1"

[build-dependencies]
dotenv = "0.10"
diesel = { version = "0.99.0", features = ["postgres"] }
diesel_migrations = { version = "0.99.0", features = ["postgres"] }
diesel = { version = "1.0.0-beta1", features = ["postgres"] }
diesel_migrations = { version = "1.0.0-beta1", features = ["postgres"] }
20 changes: 5 additions & 15 deletions src/dependency.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,12 @@ pub struct Dependency {
pub kind: Kind,
}

#[derive(Debug)]
#[derive(Debug, QueryableByName)]
pub struct ReverseDependency {
dependency: Dependency,
crate_downloads: i32,
#[diesel(embed)] dependency: Dependency,
#[sql_type = "::diesel::types::Integer"] crate_downloads: i32,
#[sql_type = "::diesel::types::Text"]
#[column_name(crate_name)]
name: String,
}

Expand Down Expand Up @@ -211,15 +213,3 @@ impl QueryableByName<Pg> for Dependency {
})
}
}

impl QueryableByName<Pg> for ReverseDependency {
fn build<R: NamedRow<Pg>>(row: &R) -> Result<Self, Box<Error + Send + Sync>> {
use diesel::types::{Integer, Text};

Ok(ReverseDependency {
dependency: QueryableByName::build(row)?,
crate_downloads: row.get::<Integer, _>("crate_downloads")?,
name: row.get::<Text, _>("crate_name")?,
})
}
}
2 changes: 2 additions & 0 deletions src/pagination.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ impl<T: Query> Query for Paginated<T> {
type SqlType = (T::SqlType, BigInt);
}

impl<T, DB> RunQueryDsl<DB> for Paginated<T> {}

impl<T> QueryFragment<Pg> for Paginated<T>
where
T: QueryFragment<Pg>,
Expand Down
1 change: 1 addition & 0 deletions src/tests/all.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ extern crate conduit;
extern crate conduit_middleware;
extern crate conduit_test;
extern crate curl;
#[macro_use]
extern crate diesel;
extern crate dotenv;
extern crate flate2;
Expand Down
34 changes: 9 additions & 25 deletions src/tests/schema_details.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
use diesel::pg::Pg;
use diesel::prelude::*;
use diesel::query_source::QueryableByName;
use diesel::row::NamedRow;
use std::error::Error;
use diesel::types::Text;

#[test]
fn all_columns_called_crate_id_have_a_cascading_foreign_key() {
Expand Down Expand Up @@ -46,37 +43,24 @@ fn all_columns_called_version_id_have_a_cascading_foreign_key() {
}
}

#[derive(QueryableByName)]
struct FkConstraint {
#[sql_type = "Text"]
#[column_name(conname)]
name: String,
definition: String,
#[sql_type = "Text"] definition: String,
}

#[derive(QueryableByName)]
struct TableNameAndConstraint {
#[sql_type = "Text"]
#[column_name(relname)]
table_name: String,
constraint: Option<FkConstraint>,
}

impl QueryableByName<Pg> for TableNameAndConstraint {
fn build<R: NamedRow<Pg>>(row: &R) -> Result<Self, Box<Error + Send + Sync>> {
use diesel::types::{Nullable, Text};

let constraint = match row.get::<Nullable<Text>, _>("conname")? {
Some(name) => Some(FkConstraint {
definition: row.get::<Text, _>("definition")?,
name,
}),
None => None,
};
Ok(TableNameAndConstraint {
table_name: row.get::<Text, _>("relname")?,
constraint,
})
}
#[diesel(embed)] constraint: Option<FkConstraint>,
}

fn get_fk_constraint_definitions(column_name: &str) -> Vec<TableNameAndConstraint> {
use diesel::sql_query;
use diesel::types::Text;

let (_r, app, _) = ::app();
let conn = app.diesel_database.get().unwrap();
Expand Down
24 changes: 3 additions & 21 deletions src/with_count.rs
Original file line number Diff line number Diff line change
@@ -1,25 +1,7 @@
use diesel::pg::Pg;
use diesel::query_source::QueryableByName;
use diesel::row::NamedRow;
use std::error::Error;

#[derive(QueryableByName)]
pub struct WithCount<T> {
total: i64,
record: T,
}

impl<T> QueryableByName<Pg> for WithCount<T>
where
T: QueryableByName<Pg>,
{
fn build<R: NamedRow<Pg>>(row: &R) -> Result<Self, Box<Error + Send + Sync>> {
use diesel::types::BigInt;

Ok(WithCount {
total: row.get::<BigInt, _>("total")?,
record: T::build(row)?,
})
}
#[sql_type = "::diesel::types::BigInt"] total: i64,
#[diesel(embed)] record: T,
}

pub trait WithCountExtension<T> {
Expand Down