Skip to content

Commit ccb87a5

Browse files
committed
Update to Diesel 1.0.0-beta1
1 parent 31a5a35 commit ccb87a5

File tree

7 files changed

+50
-85
lines changed

7 files changed

+50
-85
lines changed

Cargo.lock

Lines changed: 25 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ htmlescape = "0.3.1"
4646
license-exprs = "^1.3"
4747
dotenv = "0.10.0"
4848
toml = "0.4"
49-
diesel = { version = "0.99.0", features = ["postgres", "serde_json", "chrono"] }
50-
r2d2-diesel = "0.99.0"
51-
diesel_full_text_search = "0.99.0"
49+
diesel = { version = "1.0.0-beta1", features = ["postgres", "serde_json", "chrono"] }
50+
r2d2-diesel = "1.0.0-beta1"
51+
diesel_full_text_search = "1.0.0-beta1"
5252
serde_json = "1.0.0"
5353
serde_derive = "1.0.0"
5454
serde = "1.0.0"
@@ -82,5 +82,5 @@ tokio-service = "0.1"
8282

8383
[build-dependencies]
8484
dotenv = "0.10"
85-
diesel = { version = "0.99.0", features = ["postgres"] }
86-
diesel_migrations = { version = "0.99.0", features = ["postgres"] }
85+
diesel = { version = "1.0.0-beta1", features = ["postgres"] }
86+
diesel_migrations = { version = "1.0.0-beta1", features = ["postgres"] }

src/dependency.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,14 @@ pub struct Dependency {
2727
pub kind: Kind,
2828
}
2929

30-
#[derive(Debug)]
30+
#[derive(Debug, QueryableByName)]
3131
pub struct ReverseDependency {
32+
#[diesel(embed)]
3233
dependency: Dependency,
34+
#[sql_type = "::diesel::types::Integer"]
3335
crate_downloads: i32,
36+
#[sql_type = "::diesel::types::Text"]
37+
#[column_name(crate_name)]
3438
name: String,
3539
}
3640

@@ -211,15 +215,3 @@ impl QueryableByName<Pg> for Dependency {
211215
})
212216
}
213217
}
214-
215-
impl QueryableByName<Pg> for ReverseDependency {
216-
fn build<R: NamedRow<Pg>>(row: &R) -> Result<Self, Box<Error + Send + Sync>> {
217-
use diesel::types::{Integer, Text};
218-
219-
Ok(ReverseDependency {
220-
dependency: QueryableByName::build(row)?,
221-
crate_downloads: row.get::<Integer, _>("crate_downloads")?,
222-
name: row.get::<Text, _>("crate_name")?,
223-
})
224-
}
225-
}

src/pagination.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ impl<T: Query> Query for Paginated<T> {
2525
type SqlType = (T::SqlType, BigInt);
2626
}
2727

28+
impl<T, DB> RunQueryDsl<DB> for Paginated<T> {}
29+
2830
impl<T> QueryFragment<Pg> for Paginated<T>
2931
where
3032
T: QueryFragment<Pg>,

src/tests/all.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ extern crate conduit;
66
extern crate conduit_middleware;
77
extern crate conduit_test;
88
extern crate curl;
9+
#[macro_use]
910
extern crate diesel;
1011
extern crate dotenv;
1112
extern crate flate2;

src/tests/schema_details.rs

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
use diesel::pg::Pg;
21
use diesel::prelude::*;
3-
use diesel::query_source::QueryableByName;
4-
use diesel::row::NamedRow;
5-
use std::error::Error;
2+
use diesel::types::Text;
63

74
#[test]
85
fn all_columns_called_crate_id_have_a_cascading_foreign_key() {
@@ -46,37 +43,26 @@ fn all_columns_called_version_id_have_a_cascading_foreign_key() {
4643
}
4744
}
4845

46+
#[derive(QueryableByName)]
4947
struct FkConstraint {
48+
#[sql_type = "Text"]
49+
#[column_name(conname)]
5050
name: String,
51+
#[sql_type = "Text"]
5152
definition: String,
5253
}
5354

55+
#[derive(QueryableByName)]
5456
struct TableNameAndConstraint {
57+
#[sql_type = "Text"]
58+
#[column_name(relname)]
5559
table_name: String,
60+
#[diesel(embed)]
5661
constraint: Option<FkConstraint>,
5762
}
5863

59-
impl QueryableByName<Pg> for TableNameAndConstraint {
60-
fn build<R: NamedRow<Pg>>(row: &R) -> Result<Self, Box<Error + Send + Sync>> {
61-
use diesel::types::{Nullable, Text};
62-
63-
let constraint = match row.get::<Nullable<Text>, _>("conname")? {
64-
Some(name) => Some(FkConstraint {
65-
definition: row.get::<Text, _>("definition")?,
66-
name,
67-
}),
68-
None => None,
69-
};
70-
Ok(TableNameAndConstraint {
71-
table_name: row.get::<Text, _>("relname")?,
72-
constraint,
73-
})
74-
}
75-
}
76-
7764
fn get_fk_constraint_definitions(column_name: &str) -> Vec<TableNameAndConstraint> {
7865
use diesel::sql_query;
79-
use diesel::types::Text;
8066

8167
let (_r, app, _) = ::app();
8268
let conn = app.diesel_database.get().unwrap();

src/with_count.rs

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,11 @@
1-
use diesel::pg::Pg;
2-
use diesel::query_source::QueryableByName;
3-
use diesel::row::NamedRow;
4-
use std::error::Error;
5-
1+
#[derive(QueryableByName)]
62
pub struct WithCount<T> {
3+
#[sql_type = "::diesel::types::BigInt"]
74
total: i64,
5+
#[diesel(embed)]
86
record: T,
97
}
108

11-
impl<T> QueryableByName<Pg> for WithCount<T>
12-
where
13-
T: QueryableByName<Pg>,
14-
{
15-
fn build<R: NamedRow<Pg>>(row: &R) -> Result<Self, Box<Error + Send + Sync>> {
16-
use diesel::types::BigInt;
17-
18-
Ok(WithCount {
19-
total: row.get::<BigInt, _>("total")?,
20-
record: T::build(row)?,
21-
})
22-
}
23-
}
24-
259
pub trait WithCountExtension<T> {
2610
fn records_and_total(self) -> (Vec<T>, i64);
2711
}

0 commit comments

Comments
 (0)