update diesel to 2.1.0 and diesel-async to 0.3.0 (issue #2882) (#2895)

* update diesel to 2.1.0 and diesel-async to 0.3.0 (issue #2882)

* get rid of deprecated RawValue type alias usage, explicitly import diesel types instead of using wildcard import

* Update diesel-derive-enum and diesel-derive-newtype libraries

* Revert manual changes to schema.rs

* Update to newer diesel-cli image in CI, run fix-clippy before schema comparison, update schema to one generated with diesel-cli 2.1.0 and clippyfixed

* Remove wildcard import lint, fix diesel schema pipeline

---------

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
This commit is contained in:
Carlrs 2023-06-07 10:54:40 +00:00 committed by GitHub
parent af03dcfeac
commit 24323e17b2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 340 additions and 231 deletions

View file

@ -79,8 +79,8 @@ pipeline:
-D clippy::style -D clippy::correctness -D clippy::suspicious
-D clippy::dbg_macro -D clippy::inefficient_to_string
-D clippy::items-after-statements -D clippy::implicit_clone
-D clippy::wildcard_imports -D clippy::cast_lossless
-D clippy::manual_string_new -D clippy::redundant_closure_for_method_calls
-D clippy::cast_lossless -D clippy::manual_string_new
-D clippy::redundant_closure_for_method_calls
-D clippy::unused_self
-A clippy::uninlined_format_args
-D clippy::get_first
@ -111,7 +111,7 @@ pipeline:
# platform: linux/amd64
check_diesel_schema:
image: jameshiew/diesel-cli
image: willsquire/diesel-cli
environment:
CARGO_HOME: .cargo
DATABASE_URL: postgres://lemmy:password@database:5432/lemmy

516
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -60,9 +60,9 @@ lemmy_db_views = { version = "=0.17.1", path = "./crates/db_views" }
lemmy_db_views_actor = { version = "=0.17.1", path = "./crates/db_views_actor" }
lemmy_db_views_moderator = { version = "=0.17.1", path = "./crates/db_views_moderator" }
activitypub_federation = { version = "0.4.0", default-features = false, features = ["actix-web"] }
diesel = "2.0.2"
diesel_migrations = "2.0.0"
diesel-async = "0.1.1"
diesel = "2.1.0"
diesel_migrations = "2.1.0"
diesel-async = "0.3.0"
serde = { version = "1.0.147", features = ["derive"] }
serde_with = "1.14.0"
actix-web = { version = "4.2.1", default-features = false, features = ["macros", "rustls"] }
@ -93,8 +93,8 @@ tokio = "1.21.2"
sha2 = "0.10.6"
regex = "1.6.0"
once_cell = "1.15.0"
diesel-derive-newtype = "2.0.0-rc.0"
diesel-derive-enum = {version = "2.0.1", features = ["postgres"] }
diesel-derive-newtype = "2.0.0"
diesel-derive-enum = {version = "2.1.0", features = ["postgres"] }
strum = "0.24.1"
strum_macros = "0.24.3"
itertools = "0.10.5"

View file

@ -65,7 +65,7 @@ diesel::table! {
}
diesel::table! {
use diesel::sql_types::*;
use diesel::sql_types::{Bool, Int4, Nullable, Text, Timestamp, Varchar};
use diesel_ltree::sql_types::Ltree;
comment (id) {
@ -77,6 +77,7 @@ diesel::table! {
published -> Timestamp,
updated -> Nullable<Timestamp>,
deleted -> Bool,
#[max_length = 255]
ap_id -> Varchar,
local -> Bool,
path -> Ltree,
@ -144,7 +145,9 @@ diesel::table! {
diesel::table! {
community (id) {
id -> Int4,
#[max_length = 255]
name -> Varchar,
#[max_length = 255]
title -> Varchar,
description -> Nullable<Text>,
removed -> Bool,
@ -152,6 +155,7 @@ diesel::table! {
updated -> Nullable<Timestamp>,
deleted -> Bool,
nsfw -> Bool,
#[max_length = 255]
actor_id -> Varchar,
local -> Bool,
private_key -> Nullable<Text>,
@ -159,13 +163,18 @@ diesel::table! {
last_refreshed_at -> Timestamp,
icon -> Nullable<Text>,
banner -> Nullable<Text>,
#[max_length = 255]
followers_url -> Varchar,
#[max_length = 255]
inbox_url -> Varchar,
#[max_length = 255]
shared_inbox_url -> Nullable<Varchar>,
hidden -> Bool,
posting_restricted_to_mods -> Bool,
instance_id -> Int4,
#[max_length = 255]
moderators_url -> Nullable<Varchar>,
#[max_length = 255]
featured_url -> Nullable<Varchar>,
}
}
@ -235,6 +244,7 @@ diesel::table! {
custom_emoji (id) {
id -> Int4,
local_site_id -> Int4,
#[max_length = 128]
shortcode -> Varchar,
image_url -> Text,
alt_text -> Text,
@ -248,6 +258,7 @@ diesel::table! {
custom_emoji_keyword (id) {
id -> Int4,
custom_emoji_id -> Int4,
#[max_length = 128]
keyword -> Varchar,
}
}
@ -283,10 +294,13 @@ diesel::table! {
diesel::table! {
instance (id) {
id -> Int4,
#[max_length = 255]
domain -> Varchar,
published -> Timestamp,
updated -> Nullable<Timestamp>,
#[max_length = 255]
software -> Nullable<Varchar>,
#[max_length = 255]
version -> Nullable<Varchar>,
}
}
@ -294,13 +308,14 @@ diesel::table! {
diesel::table! {
language (id) {
id -> Int4,
#[max_length = 3]
code -> Varchar,
name -> Text,
}
}
diesel::table! {
use diesel::sql_types::*;
use diesel::sql_types::{Bool, Int4, Nullable, Text, Timestamp, Varchar};
use super::sql_types::ListingTypeEnum;
use super::sql_types::RegistrationModeEnum;
@ -325,6 +340,7 @@ diesel::table! {
federation_debug -> Bool,
federation_worker_count -> Int4,
captcha_enabled -> Bool,
#[max_length = 255]
captcha_difficulty -> Varchar,
published -> Timestamp,
updated -> Nullable<Timestamp>,
@ -355,7 +371,7 @@ diesel::table! {
}
diesel::table! {
use diesel::sql_types::*;
use diesel::sql_types::{Bool, Int4, Nullable, Text, Timestamp, Varchar};
use super::sql_types::SortTypeEnum;
use super::sql_types::ListingTypeEnum;
@ -365,9 +381,11 @@ diesel::table! {
password_encrypted -> Text,
email -> Nullable<Text>,
show_nsfw -> Bool,
#[max_length = 20]
theme -> Varchar,
default_sort_type -> SortTypeEnum,
default_listing_type -> ListingTypeEnum,
#[max_length = 20]
interface_language -> Varchar,
show_avatars -> Bool,
send_notifications_to_email -> Bool,
@ -525,12 +543,15 @@ diesel::table! {
diesel::table! {
person (id) {
id -> Int4,
#[max_length = 255]
name -> Varchar,
#[max_length = 255]
display_name -> Nullable<Varchar>,
avatar -> Nullable<Text>,
banned -> Bool,
published -> Timestamp,
updated -> Nullable<Timestamp>,
#[max_length = 255]
actor_id -> Varchar,
bio -> Nullable<Text>,
local -> Bool,
@ -539,7 +560,9 @@ diesel::table! {
last_refreshed_at -> Timestamp,
banner -> Nullable<Text>,
deleted -> Bool,
#[max_length = 255]
inbox_url -> Varchar,
#[max_length = 255]
shared_inbox_url -> Nullable<Varchar>,
matrix_user_id -> Nullable<Text>,
admin -> Bool,
@ -610,6 +633,7 @@ diesel::table! {
diesel::table! {
post (id) {
id -> Int4,
#[max_length = 200]
name -> Varchar,
url -> Nullable<Text>,
body -> Nullable<Text>,
@ -624,6 +648,7 @@ diesel::table! {
embed_title -> Nullable<Text>,
embed_description -> Nullable<Text>,
thumbnail_url -> Nullable<Text>,
#[max_length = 255]
ap_id -> Varchar,
local -> Bool,
embed_video_url -> Nullable<Text>,
@ -673,6 +698,7 @@ diesel::table! {
id -> Int4,
creator_id -> Int4,
post_id -> Int4,
#[max_length = 200]
original_post_name -> Varchar,
original_post_url -> Nullable<Text>,
original_post_body -> Nullable<Text>,
@ -703,6 +729,7 @@ diesel::table! {
read -> Bool,
published -> Timestamp,
updated -> Nullable<Timestamp>,
#[max_length = 255]
ap_id -> Varchar,
local -> Bool,
}
@ -743,15 +770,19 @@ diesel::table! {
diesel::table! {
site (id) {
id -> Int4,
#[max_length = 20]
name -> Varchar,
sidebar -> Nullable<Text>,
published -> Timestamp,
updated -> Nullable<Timestamp>,
icon -> Nullable<Text>,
banner -> Nullable<Text>,
#[max_length = 150]
description -> Nullable<Varchar>,
#[max_length = 255]
actor_id -> Varchar,
last_refreshed_at -> Timestamp,
#[max_length = 255]
inbox_url -> Varchar,
private_key -> Nullable<Text>,
public_key -> Text,

View file

@ -229,7 +229,7 @@ impl<DB: Backend> FromSql<Text, DB> for DbUrl
where
String: FromSql<Text, DB>,
{
fn from_sql(value: diesel::backend::RawValue<'_, DB>) -> diesel::deserialize::Result<Self> {
fn from_sql(value: DB::RawValue<'_>) -> diesel::deserialize::Result<Self> {
let str = String::from_sql(value)?;
Ok(DbUrl(Box::new(Url::parse(&str)?)))
}