[INFO] cloning repository https://github.com/Akiramex/im-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Akiramex/im-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAkiramex%2Fim-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAkiramex%2Fim-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ac61ea77778cf7207fe6fa364af1e86b072c3052
[INFO] checking Akiramex/im-server against try#3a4cb0edb4040379c037e06efeb5409e44be7b77 for pr-146377
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAkiramex%2Fim-server" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Akiramex/im-server
[INFO] finished tweaking git repo https://github.com/Akiramex/im-server
[INFO] tweaked toml for git repo https://github.com/Akiramex/im-server written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Akiramex/im-server on toolchain 3a4cb0edb4040379c037e06efeb5409e44be7b77
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Akiramex/im-server already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d2e1947dd5234271429cb9aa52b5295c8126910f8e2f336969d5d773248e489d
[INFO] running `Command { std: "docker" "start" "-a" "d2e1947dd5234271429cb9aa52b5295c8126910f8e2f336969d5d773248e489d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d2e1947dd5234271429cb9aa52b5295c8126910f8e2f336969d5d773248e489d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d2e1947dd5234271429cb9aa52b5295c8126910f8e2f336969d5d773248e489d", kill_on_drop: false }`
[INFO] [stdout] d2e1947dd5234271429cb9aa52b5295c8126910f8e2f336969d5d773248e489d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b11be3d0e9bd4c1c7400f99a7ca693c981281da51ab2eea8590d02935f704041
[INFO] running `Command { std: "docker" "start" "-a" "b11be3d0e9bd4c1c7400f99a7ca693c981281da51ab2eea8590d02935f704041", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking base64ct v1.8.0
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking writeable v0.6.2
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]     Checking litemap v0.8.1
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling indexmap v2.12.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking rustls-pki-types v1.13.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling cc v1.2.46
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking ff v0.13.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking base16ct v0.2.0
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling mime-infer v4.0.1
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking group v0.13.0
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking headers-core v0.3.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling toml_edit v0.23.7
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]     Checking xml v1.1.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling salvo-serde-util v0.84.2
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking headers v0.4.1
[INFO] [stderr]     Checking chardetng v0.1.17
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking content_inspector v0.2.4
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling crc v3.3.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]     Checking primeorder v0.13.6
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking rustls-webpki v0.103.8
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling salvo_macros v0.84.2
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling rust-embed-utils v8.9.0
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking pkcs1 v0.7.5
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling rust_decimal v1.39.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling rust-embed-impl v8.9.0
[INFO] [stderr]     Checking tungstenite v0.28.0
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking p256 v0.13.2
[INFO] [stderr]     Checking p384 v0.13.1
[INFO] [stderr]     Checking rustls-native-certs v0.8.2
[INFO] [stderr]     Checking ulid v1.2.1
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking xxhash-rust v0.8.15
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking unsafe-libyaml-norway v0.2.15
[INFO] [stderr]     Checking str-buf v3.0.3
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking rust-embed v8.9.0
[INFO] [stderr]    Compiling salvo-oapi-macros v0.84.2
[INFO] [stderr]    Compiling pear_codegen v0.2.9
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking etag v4.0.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking multimap v0.10.1
[INFO] [stderr]     Checking serde-xml-rs v0.8.2
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking serde_norway v0.9.42
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]    Compiling figment v0.10.19
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking futures-intrusive v0.5.0
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking inventory v0.3.21
[INFO] [stderr]     Checking iri-string v0.7.9
[INFO] [stderr]     Checking inlinable_string v0.1.15
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking pear v0.2.9
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking rsa v0.9.9
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking simple_asn1 v0.6.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking jsonwebtoken v10.2.0
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tracing-appender v0.2.3
[INFO] [stderr]     Checking tokio-util v0.7.17
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tokio-tungstenite v0.28.0
[INFO] [stderr]     Checking tokio-retry v0.3.0
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking redis v0.26.1
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking hyper-util v0.1.18
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking salvo_core v0.84.2
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.24
[INFO] [stderr]     Checking salvo-jwt-auth v0.84.2
[INFO] [stderr]     Checking salvo-oapi v0.84.2
[INFO] [stderr]     Checking salvo-cors v0.84.2
[INFO] [stderr]     Checking salvo_extra v0.84.2
[INFO] [stderr]     Checking salvo v0.84.2
[INFO] [stderr]     Checking im-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/api/subcription_api.rs:24:33
[INFO] [stdout]    |
[INFO] [stdout] 24 |       let user_db_id: i64 = match sqlx::query_scalar!(
[INFO] [stdout]    |  _________________________________^
[INFO] [stdout] 25 | |         "SELECT user_id FROM subscriptions WHERE subscription_id = $1",
[INFO] [stdout] 26 | |         subscription_id
[INFO] [stdout] 27 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/api/subcription_api.rs:24:33
[INFO] [stdout]    |
[INFO] [stdout] 24 |       let user_db_id: i64 = match sqlx::query_scalar!(
[INFO] [stdout]    |  _________________________________^
[INFO] [stdout] 25 | |         "SELECT user_id FROM subscriptions WHERE subscription_id = $1",
[INFO] [stdout] 26 | |         subscription_id
[INFO] [stdout] 27 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/friend_service.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | /     sqlx::query!(
[INFO] [stdout] 19 | |         r#"
[INFO] [stdout] 20 | |             INSERT INTO im_friendship(owner_id, to_id, remark, del_flag, black , sequence, add_source, version)
[INFO] [stdout] 21 | |             VALUES($1, $2, NULL, 1, 1, $3, 'api' , 1)
[INFO] [stdout] ...  |
[INFO] [stdout] 30 | |         timestamp
[INFO] [stdout] 31 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/friend_service.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | /     sqlx::query!(
[INFO] [stdout] 36 | |         r#"
[INFO] [stdout] 37 | |             INSERT INTO im_friendship(owner_id, to_id, remark, del_flag, black , sequence, add_source, version)
[INFO] [stdout] 38 | |             VALUES($1, $2, NULL, 1, 1, $3,'api', 1)
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |         timestamp
[INFO] [stdout] 48 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/friend_service.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | /     sqlx::query!(
[INFO] [stdout] 60 | |         r#"UPDATE im_friendship
[INFO] [stdout] 61 | |         SET del_flag = 0, update_time = $1, version = version + 1
[INFO] [stdout] 62 | |         WHERE((owner_id = $2 AND to_id = $3) OR (owner_id = $3 AND to_id = $2))
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | |         friend_id
[INFO] [stdout] 68 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/friend_service.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |       let friends = sqlx::query_as!(SafeUser,
[INFO] [stdout]    |  ___________________^
[INFO] [stdout] 79 | |         r#"SELECT u.id, u.open_id, u.name, u.email, u.file_name, u.abstract as abstract_field, u.phone, u.status, u.gender
[INFO] [stdout] 80 | |         FROM im_friendship f
[INFO] [stdout] 81 | |         INNER JOIN users u ON f.to_id = u.open_id
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |         user_id
[INFO] [stdout] 89 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/friend_service.rs:99:18
[INFO] [stdout]     |
[INFO] [stdout]  99 |       let result = sqlx::query_scalar!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 100 | |         r#"SELECT COUNT(*) as "count!: i64" FROM im_friendship
[INFO] [stdout] 101 | |         WHERE((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] 102 | |         AND (del_flag IS NULL OR del_flag = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |         friend_id,
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/im_friendship_service.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 |       let result = sqlx::query_scalar!(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 14 | |         r#"
[INFO] [stdout] 15 | |             SELECT COUNT(*) "count!: i64" FROM im_friendship
[INFO] [stdout] 16 | |             WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] ...  |
[INFO] [stdout] 21 | |         to_id
[INFO] [stdout] 22 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/im_friendship_service.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |           let user_row = sqlx::query!(
[INFO] [stdout]    |  ________________________^
[INFO] [stdout] 43 | |             r#"SELECT
[INFO] [stdout] 44 | |                 u1.open_id as owner_open_id, u1.name as owner_name, u1.phone as owner_phone,
[INFO] [stdout] 45 | |                 u2.open_id as to_open_id, u2.name as to_name, u2.phone as to_phone
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |             to_id
[INFO] [stdout] 54 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:117:40
[INFO] [stdout]     |
[INFO] [stdout] 117 |                       let check_result = sqlx::query_scalar!(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 118 | |                         r#"SELECT COUNT(*) "count!: i64" FROM im_friendship
[INFO] [stdout] 119 | |                          WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] 120 | |                          AND (del_flag IS NULL OR del_flag = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |                         tid
[INFO] [stdout] 124 | |                     )
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 153 |       let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 154 | |         ImFriendship,
[INFO] [stdout] 155 | |         r#"
[INFO] [stdout] 156 | |             SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 164 | |         owner_id
[INFO] [stdout] 165 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:180:24
[INFO] [stdout]     |
[INFO] [stdout] 180 |       let user_by_name = sqlx::query_scalar!(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 181 | |         r#"
[INFO] [stdout] 182 | |             SELECT open_id FROM users WHERE name = $1
[INFO] [stdout] 183 | |             AND (status IS NULL OR status = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 186 | |         owner_id
[INFO] [stdout] 187 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:197:27
[INFO] [stdout]     |
[INFO] [stdout] 197 |               let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 198 | |                 ImFriendship,
[INFO] [stdout] 199 | |                 r#"
[INFO] [stdout] 200 | |                     SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 208 | |                 open_id
[INFO] [stdout] 209 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:229:27
[INFO] [stdout]     |
[INFO] [stdout] 229 |       let user_by_open_id = sqlx::query_scalar!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 230 | |         r#"
[INFO] [stdout] 231 | |             SELECT name FROM users WHERE open_id = $1
[INFO] [stdout] 232 | |             AND (status IS NULL OR status = 1) LIMIT 1
[INFO] [stdout] 233 | |         "#,
[INFO] [stdout] 234 | |         owner_id
[INFO] [stdout] 235 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:245:27
[INFO] [stdout]     |
[INFO] [stdout] 245 |               let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 246 | |                 ImFriendship,
[INFO] [stdout] 247 | |                 r#"
[INFO] [stdout] 248 | |                     SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 256 | |                 name
[INFO] [stdout] 257 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:305:5
[INFO] [stdout]     |
[INFO] [stdout] 305 | /     sqlx::query!(
[INFO] [stdout] 306 | |         r#"
[INFO] [stdout] 307 | |             INSERT INTO im_friendship
[INFO] [stdout] 308 | |             (owner_id, to_id, remark, del_flag, black, create_time, update_time, sequence, add_source, version)
[INFO] [stdout] ...   |
[INFO] [stdout] 322 | |          add_source,
[INFO] [stdout] 323 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/friend_service.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | /     sqlx::query!(
[INFO] [stdout] 19 | |         r#"
[INFO] [stdout] 20 | |             INSERT INTO im_friendship(owner_id, to_id, remark, del_flag, black , sequence, add_source, version)
[INFO] [stdout] 21 | |             VALUES($1, $2, NULL, 1, 1, $3, 'api' , 1)
[INFO] [stdout] ...  |
[INFO] [stdout] 30 | |         timestamp
[INFO] [stdout] 31 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 327 | /     sqlx::query!(
[INFO] [stdout] 328 | |         r#"
[INFO] [stdout] 329 | |             INSERT INTO im_friendship
[INFO] [stdout] 330 | |             (owner_id, to_id, remark, del_flag, black, create_time, update_time, sequence, add_source, version)
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |         add_source,
[INFO] [stdout] 345 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/friend_service.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | /     sqlx::query!(
[INFO] [stdout] 36 | |         r#"
[INFO] [stdout] 37 | |             INSERT INTO im_friendship(owner_id, to_id, remark, del_flag, black , sequence, add_source, version)
[INFO] [stdout] 38 | |             VALUES($1, $2, NULL, 1, 1, $3,'api', 1)
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |         timestamp
[INFO] [stdout] 48 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/friend_service.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | /     sqlx::query!(
[INFO] [stdout] 60 | |         r#"UPDATE im_friendship
[INFO] [stdout] 61 | |         SET del_flag = 0, update_time = $1, version = version + 1
[INFO] [stdout] 62 | |         WHERE((owner_id = $2 AND to_id = $3) OR (owner_id = $3 AND to_id = $2))
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | |         friend_id
[INFO] [stdout] 68 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/friend_service.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |       let friends = sqlx::query_as!(SafeUser,
[INFO] [stdout]    |  ___________________^
[INFO] [stdout] 79 | |         r#"SELECT u.id, u.open_id, u.name, u.email, u.file_name, u.abstract as abstract_field, u.phone, u.status, u.gender
[INFO] [stdout] 80 | |         FROM im_friendship f
[INFO] [stdout] 81 | |         INNER JOIN users u ON f.to_id = u.open_id
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |         user_id
[INFO] [stdout] 89 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/friend_service.rs:99:18
[INFO] [stdout]     |
[INFO] [stdout]  99 |       let result = sqlx::query_scalar!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 100 | |         r#"SELECT COUNT(*) as "count!: i64" FROM im_friendship
[INFO] [stdout] 101 | |         WHERE((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] 102 | |         AND (del_flag IS NULL OR del_flag = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 105 | |         friend_id,
[INFO] [stdout] 106 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:358:26
[INFO] [stdout]     |
[INFO] [stdout] 358 |       let existing_count = sqlx::query_scalar!(
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 359 | |         r#"
[INFO] [stdout] 360 | |             SELECT COUNT(*) as "count!: i64" FROM im_friendship
[INFO] [stdout] 361 | |             WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] ...   |
[INFO] [stdout] 365 | |         to_id
[INFO] [stdout] 366 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:376:18
[INFO] [stdout]     |
[INFO] [stdout] 376 |       let result = sqlx::query!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 377 | |         r#"
[INFO] [stdout] 378 | |             UPDATE im_friendship
[INFO] [stdout] 379 | |             SET del_flag = 0, update_time = $1, version = version + 1
[INFO] [stdout] ...   |
[INFO] [stdout] 385 | |         to_id
[INFO] [stdout] 386 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/im_friendship_service.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 |       let result = sqlx::query_scalar!(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 14 | |         r#"
[INFO] [stdout] 15 | |             SELECT COUNT(*) "count!: i64" FROM im_friendship
[INFO] [stdout] 16 | |             WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] ...  |
[INFO] [stdout] 21 | |         to_id
[INFO] [stdout] 22 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 | /     sqlx::query!(
[INFO] [stdout] 416 | |         r#"
[INFO] [stdout] 417 | |             UPDATE im_friendship
[INFO] [stdout] 418 | |             SET remark = $1, update_time = $2, version = version + 1
[INFO] [stdout] ...   |
[INFO] [stdout] 425 | |         to_id
[INFO] [stdout] 426 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:438:25
[INFO] [stdout]     |
[INFO] [stdout] 438 |       let current_black = sqlx::query_scalar!(
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 439 | |         r#"
[INFO] [stdout] 440 | |             SELECT black FROM im_friendship WHERE owner_id = $1 AND to_id = $2
[INFO] [stdout] 441 | |         "#,
[INFO] [stdout] 442 | |         owner_id,
[INFO] [stdout] 443 | |         to_id
[INFO] [stdout] 444 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:457:5
[INFO] [stdout]     |
[INFO] [stdout] 457 | /     sqlx::query!(
[INFO] [stdout] 458 | |         r#"
[INFO] [stdout] 459 | |             UPDATE im_friendship
[INFO] [stdout] 460 | |             SET black = $1, black_sequence = $2, update_time = $3, version = version + 1
[INFO] [stdout] ...   |
[INFO] [stdout] 471 | |         to_id
[INFO] [stdout] 472 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/im_friendship_service.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |           let user_row = sqlx::query!(
[INFO] [stdout]    |  ________________________^
[INFO] [stdout] 43 | |             r#"SELECT
[INFO] [stdout] 44 | |                 u1.open_id as owner_open_id, u1.name as owner_name, u1.phone as owner_phone,
[INFO] [stdout] 45 | |                 u2.open_id as to_open_id, u2.name as to_name, u2.phone as to_phone
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |             to_id
[INFO] [stdout] 54 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:507:5
[INFO] [stdout]     |
[INFO] [stdout] 507 | /     sqlx::query!(
[INFO] [stdout] 508 | |         r#"
[INFO] [stdout] 509 | |             DELETE FROM im_friendship_request
[INFO] [stdout] 510 | |             WHERE from_id = $1 AND to_id = $2 AND approve_status = 2
[INFO] [stdout] ...   |
[INFO] [stdout] 513 | |         request.to_id
[INFO] [stdout] 514 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:117:40
[INFO] [stdout]     |
[INFO] [stdout] 117 |                       let check_result = sqlx::query_scalar!(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 118 | |                         r#"SELECT COUNT(*) "count!: i64" FROM im_friendship
[INFO] [stdout] 119 | |                          WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] 120 | |                          AND (del_flag IS NULL OR del_flag = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |                         tid
[INFO] [stdout] 124 | |                     )
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:522:18
[INFO] [stdout]     |
[INFO] [stdout] 522 |       let result = sqlx::query!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 523 | |         r#"
[INFO] [stdout] 524 | |             INSERT INTO im_friendship_request
[INFO] [stdout] 525 | |             (id, from_id, to_id, remark, read_status, add_source, message, approve_status,
[INFO] [stdout] ...   |
[INFO] [stdout] 541 | |         now,
[INFO] [stdout] 542 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 153 |       let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 154 | |         ImFriendship,
[INFO] [stdout] 155 | |         r#"
[INFO] [stdout] 156 | |             SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 164 | |         owner_id
[INFO] [stdout] 165 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:591:9
[INFO] [stdout]     |
[INFO] [stdout] 591 | /         sqlx::query_as!(
[INFO] [stdout] 592 | |             ImFriendshipRequest,
[INFO] [stdout] 593 | |             r#"
[INFO] [stdout] 594 | |                 SELECT id, from_id, to_id, remark, read_status, add_source, message,
[INFO] [stdout] ...   |
[INFO] [stdout] 603 | |             status
[INFO] [stdout] 604 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:180:24
[INFO] [stdout]     |
[INFO] [stdout] 180 |       let user_by_name = sqlx::query_scalar!(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 181 | |         r#"
[INFO] [stdout] 182 | |             SELECT open_id FROM users WHERE name = $1
[INFO] [stdout] 183 | |             AND (status IS NULL OR status = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 186 | |         owner_id
[INFO] [stdout] 187 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:197:27
[INFO] [stdout]     |
[INFO] [stdout] 197 |               let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 198 | |                 ImFriendship,
[INFO] [stdout] 199 | |                 r#"
[INFO] [stdout] 200 | |                     SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 208 | |                 open_id
[INFO] [stdout] 209 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 608 | /         sqlx::query_as!(
[INFO] [stdout] 609 | |             ImFriendshipRequest,
[INFO] [stdout] 610 | |             r#"
[INFO] [stdout] 611 | |                 SELECT id, from_id, to_id, remark, read_status, add_source, message,
[INFO] [stdout] ...   |
[INFO] [stdout] 618 | |             to_id
[INFO] [stdout] 619 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:631:19
[INFO] [stdout]     |
[INFO] [stdout] 631 |       let request = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 632 | |         ImFriendshipRequest,
[INFO] [stdout] 633 | |         r#"
[INFO] [stdout] 634 | |             UPDATE im_friendship_request
[INFO] [stdout] ...   |
[INFO] [stdout] 641 | |         request_id
[INFO] [stdout] 642 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:229:27
[INFO] [stdout]     |
[INFO] [stdout] 229 |       let user_by_open_id = sqlx::query_scalar!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 230 | |         r#"
[INFO] [stdout] 231 | |             SELECT name FROM users WHERE open_id = $1
[INFO] [stdout] 232 | |             AND (status IS NULL OR status = 1) LIMIT 1
[INFO] [stdout] 233 | |         "#,
[INFO] [stdout] 234 | |         owner_id
[INFO] [stdout] 235 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/im_message_service.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | /     sqlx::query!(
[INFO] [stdout] 16 | |         r#"
[INFO] [stdout] 17 | |         INSERT INTO im_single_message
[INFO] [stdout] 18 | |          (message_id, from_id, to_id, message_body, message_time, message_content_type,
[INFO] [stdout] ...  |
[INFO] [stdout] 40 | |         message.file_type
[INFO] [stdout] 41 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/im_message_service.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | /     sqlx::query!(
[INFO] [stdout] 89 | |         r#"
[INFO] [stdout] 90 | |             UPDATE im_single_message
[INFO] [stdout] 91 | |             SET read_status = 1, update_time = $1, version = version + 1
[INFO] [stdout] ...  |
[INFO] [stdout] 96 | |         to_id
[INFO] [stdout] 97 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_message_service.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | /     sqlx::query!(
[INFO] [stdout] 109 | |         r#"
[INFO] [stdout] 110 | |         INSERT INTO im_group_message
[INFO] [stdout] 111 | |          (message_id, group_id, from_id, message_body, message_time, message_content_type,
[INFO] [stdout] ...   |
[INFO] [stdout] 128 | |         message.reply_to
[INFO] [stdout] 129 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:245:27
[INFO] [stdout]     |
[INFO] [stdout] 245 |               let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 246 | |                 ImFriendship,
[INFO] [stdout] 247 | |                 r#"
[INFO] [stdout] 248 | |                     SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 256 | |                 name
[INFO] [stdout] 257 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:305:5
[INFO] [stdout]     |
[INFO] [stdout] 305 | /     sqlx::query!(
[INFO] [stdout] 306 | |         r#"
[INFO] [stdout] 307 | |             INSERT INTO im_friendship
[INFO] [stdout] 308 | |             (owner_id, to_id, remark, del_flag, black, create_time, update_time, sequence, add_source, version)
[INFO] [stdout] ...   |
[INFO] [stdout] 322 | |          add_source,
[INFO] [stdout] 323 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 327 | /     sqlx::query!(
[INFO] [stdout] 328 | |         r#"
[INFO] [stdout] 329 | |             INSERT INTO im_friendship
[INFO] [stdout] 330 | |             (owner_id, to_id, remark, del_flag, black, create_time, update_time, sequence, add_source, version)
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |         add_source,
[INFO] [stdout] 345 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:358:26
[INFO] [stdout]     |
[INFO] [stdout] 358 |       let existing_count = sqlx::query_scalar!(
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 359 | |         r#"
[INFO] [stdout] 360 | |             SELECT COUNT(*) as "count!: i64" FROM im_friendship
[INFO] [stdout] 361 | |             WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] ...   |
[INFO] [stdout] 365 | |         to_id
[INFO] [stdout] 366 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:376:18
[INFO] [stdout]     |
[INFO] [stdout] 376 |       let result = sqlx::query!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 377 | |         r#"
[INFO] [stdout] 378 | |             UPDATE im_friendship
[INFO] [stdout] 379 | |             SET del_flag = 0, update_time = $1, version = version + 1
[INFO] [stdout] ...   |
[INFO] [stdout] 385 | |         to_id
[INFO] [stdout] 386 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 | /     sqlx::query!(
[INFO] [stdout] 416 | |         r#"
[INFO] [stdout] 417 | |             UPDATE im_friendship
[INFO] [stdout] 418 | |             SET remark = $1, update_time = $2, version = version + 1
[INFO] [stdout] ...   |
[INFO] [stdout] 425 | |         to_id
[INFO] [stdout] 426 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:438:25
[INFO] [stdout]     |
[INFO] [stdout] 438 |       let current_black = sqlx::query_scalar!(
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 439 | |         r#"
[INFO] [stdout] 440 | |             SELECT black FROM im_friendship WHERE owner_id = $1 AND to_id = $2
[INFO] [stdout] 441 | |         "#,
[INFO] [stdout] 442 | |         owner_id,
[INFO] [stdout] 443 | |         to_id
[INFO] [stdout] 444 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:457:5
[INFO] [stdout]     |
[INFO] [stdout] 457 | /     sqlx::query!(
[INFO] [stdout] 458 | |         r#"
[INFO] [stdout] 459 | |             UPDATE im_friendship
[INFO] [stdout] 460 | |             SET black = $1, black_sequence = $2, update_time = $3, version = version + 1
[INFO] [stdout] ...   |
[INFO] [stdout] 471 | |         to_id
[INFO] [stdout] 472 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:109:16
[INFO] [stdout]     |
[INFO] [stdout] 109 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 110 | |         ImUser,
[INFO] [stdout] 111 | |         r#"SELECT open_id as user_id, name as user_name, password_hash as password,
[INFO] [stdout] 112 | |                 phone as mobile, create_time, update_time, version, del_flag
[INFO] [stdout] ...   |
[INFO] [stdout] 115 | |         user_id
[INFO] [stdout] 116 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:138:16
[INFO] [stdout]     |
[INFO] [stdout] 138 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 139 | |         ImUser,
[INFO] [stdout] 140 | |         r#"SELECT open_id as user_id, name as user_name, password_hash as password,
[INFO] [stdout] 141 | |                 phone as mobile, create_time, update_time, version, del_flag
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |         user_name
[INFO] [stdout] 145 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:168:16
[INFO] [stdout]     |
[INFO] [stdout] 168 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 169 | |         ImUser,
[INFO] [stdout] 170 | |         r#"SELECT open_id as user_id, name as user_name, password_hash as password,
[INFO] [stdout] 171 | |                 phone as mobile, create_time, update_time, version, del_flag
[INFO] [stdout] ...   |
[INFO] [stdout] 174 | |         mobile
[INFO] [stdout] 175 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:214:20
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let existing = sqlx::query!("SELECT id FROM users WHERE open_id = $1", user_id)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 | /     sqlx::query!(
[INFO] [stdout] 226 | |         r#"INSERT INTO users (open_id, name, email, password_hash, phone, create_time, update_time, version, del_flag, status)
[INFO] [stdout] 227 | |          VALUES ($1, $2, $3, $4, $5, $6, $6, 1, 1, 1)"#,
[INFO] [stdout] 228 | |         user_id,
[INFO] [stdout] ...   |
[INFO] [stdout] 233 | |         now
[INFO] [stdout] 234 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:507:5
[INFO] [stdout]     |
[INFO] [stdout] 507 | /     sqlx::query!(
[INFO] [stdout] 508 | |         r#"
[INFO] [stdout] 509 | |             DELETE FROM im_friendship_request
[INFO] [stdout] 510 | |             WHERE from_id = $1 AND to_id = $2 AND approve_status = 2
[INFO] [stdout] ...   |
[INFO] [stdout] 513 | |         request.to_id
[INFO] [stdout] 514 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:522:18
[INFO] [stdout]     |
[INFO] [stdout] 522 |       let result = sqlx::query!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 523 | |         r#"
[INFO] [stdout] 524 | |             INSERT INTO im_friendship_request
[INFO] [stdout] 525 | |             (id, from_id, to_id, remark, read_status, add_source, message, approve_status,
[INFO] [stdout] ...   |
[INFO] [stdout] 541 | |         now,
[INFO] [stdout] 542 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 287 | /     sqlx::query!(
[INFO] [stdout] 288 | |         r#"INSERT INTO im_user_data
[INFO] [stdout] 289 | |          (user_id, name, avatar, gender, birthday, location, self_signature,
[INFO] [stdout] 290 | |           friend_allow_type, forbidden_flag, disable_add_friend, silent_flag,
[INFO] [stdout] ...   |
[INFO] [stdout] 308 | |         now
[INFO] [stdout] 309 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:591:9
[INFO] [stdout]     |
[INFO] [stdout] 591 | /         sqlx::query_as!(
[INFO] [stdout] 592 | |             ImFriendshipRequest,
[INFO] [stdout] 593 | |             r#"
[INFO] [stdout] 594 | |                 SELECT id, from_id, to_id, remark, read_status, add_source, message,
[INFO] [stdout] ...   |
[INFO] [stdout] 603 | |             status
[INFO] [stdout] 604 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 608 | /         sqlx::query_as!(
[INFO] [stdout] 609 | |             ImFriendshipRequest,
[INFO] [stdout] 610 | |             r#"
[INFO] [stdout] 611 | |                 SELECT id, from_id, to_id, remark, read_status, add_source, message,
[INFO] [stdout] ...   |
[INFO] [stdout] 618 | |             to_id
[INFO] [stdout] 619 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_friendship_service.rs:631:19
[INFO] [stdout]     |
[INFO] [stdout] 631 |       let request = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 632 | |         ImFriendshipRequest,
[INFO] [stdout] 633 | |         r#"
[INFO] [stdout] 634 | |             UPDATE im_friendship_request
[INFO] [stdout] ...   |
[INFO] [stdout] 641 | |         request_id
[INFO] [stdout] 642 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/im_message_service.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | /     sqlx::query!(
[INFO] [stdout] 16 | |         r#"
[INFO] [stdout] 17 | |         INSERT INTO im_single_message
[INFO] [stdout] 18 | |          (message_id, from_id, to_id, message_body, message_time, message_content_type,
[INFO] [stdout] ...  |
[INFO] [stdout] 40 | |         message.file_type
[INFO] [stdout] 41 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/service/im_message_service.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | /     sqlx::query!(
[INFO] [stdout] 89 | |         r#"
[INFO] [stdout] 90 | |             UPDATE im_single_message
[INFO] [stdout] 91 | |             SET read_status = 1, update_time = $1, version = version + 1
[INFO] [stdout] ...  |
[INFO] [stdout] 96 | |         to_id
[INFO] [stdout] 97 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:338:21
[INFO] [stdout]     |
[INFO] [stdout] 338 |       let user_data = sqlx::query_as!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 339 | |         ImUserData,
[INFO] [stdout] 340 | |         "SELECT user_id, name, avatar, gender, birthday, location, self_signature,
[INFO] [stdout] 341 | |                 friend_allow_type, forbidden_flag, disable_add_friend, silent_flag,
[INFO] [stdout] ...   |
[INFO] [stdout] 345 | |         user_id
[INFO] [stdout] 346 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_message_service.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | /     sqlx::query!(
[INFO] [stdout] 109 | |         r#"
[INFO] [stdout] 110 | |         INSERT INTO im_group_message
[INFO] [stdout] 111 | |          (message_id, group_id, from_id, message_body, message_time, message_content_type,
[INFO] [stdout] ...   |
[INFO] [stdout] 128 | |         message.reply_to
[INFO] [stdout] 129 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:409:5
[INFO] [stdout]     |
[INFO] [stdout] 409 | /     sqlx::query!(
[INFO] [stdout] 410 | |         r#"INSERT INTO im_user_data
[INFO] [stdout] 411 | |                  (user_id, name, avatar, gender, birthday, location, self_signature,
[INFO] [stdout] 412 | |                   friend_allow_type, forbidden_flag, disable_add_friend, silent_flag,
[INFO] [stdout] ...   |
[INFO] [stdout] 445 | |         now
[INFO] [stdout] 446 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |       let result_id = sqlx::query_scalar!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 110 | |         r#"INSERT INTO users (open_id, name, email, password_hash, phone, status, gender)
[INFO] [stdout] 111 | |         VALUES ($1, $2, $3, $4, $5, 1, 3)
[INFO] [stdout] 112 | |         RETURNING id"#,
[INFO] [stdout] ...   |
[INFO] [stdout] 117 | |         phone
[INFO] [stdout] 118 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:137:17
[INFO] [stdout]     |
[INFO] [stdout] 137 |       let total = sqlx::query_scalar!(
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 138 | |         r#"
[INFO] [stdout] 139 | |         SELECT COUNT(*) as "count!: i64" FROM users
[INFO] [stdout] 140 | |         WHERE name LIKE $1
[INFO] [stdout] 141 | |         "#,
[INFO] [stdout] 142 | |         like_pattern
[INFO] [stdout] 143 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |       let users = sqlx::query_as!(SafeUser, r#"SELECT id, open_id, name, email, file_name, abstract as abstract_field, phone, statu...
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 148 | |         FROM users
[INFO] [stdout] 149 | |         WHERE name LIKE $1 AND (status IS NULL OR status = 1)
[INFO] [stdout] 150 | |         LIMIT $2 OFFSET $3"#, like_pattern, page_size, offset)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:169:16
[INFO] [stdout]     |
[INFO] [stdout] 169 |       let user = sqlx::query_as!(User, r#"SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, ph...
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 170 | |         FROM users WHERE name = $1 AND (status IS NULL OR status = 1)"#, name)
[INFO] [stdout]     | |______________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:190:16
[INFO] [stdout]     |
[INFO] [stdout] 190 |       let user = sqlx::query_as!(User, r#"SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, ph...
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 191 | |         FROM users WHERE email = $1 AND (status IS NULL OR status = 1)"#, email)
[INFO] [stdout]     | |________________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:211:16
[INFO] [stdout]     |
[INFO] [stdout] 211 |       let user = sqlx::query_as!(User, r#"SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, ph...
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 212 | |         FROM users WHERE phone = $1 AND (status IS NULL OR status = 1)"#, phone)
[INFO] [stdout]     | |________________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:232:16
[INFO] [stdout]     |
[INFO] [stdout] 232 |       let user = sqlx::query_as!(User, r#"SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, ph...
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 233 | |         FROM users WHERE open_id = $1 AND (status IS NULL OR status = 1)"#, open_id)
[INFO] [stdout]     | |____________________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:253:18
[INFO] [stdout]     |
[INFO] [stdout] 253 |       let exists = sqlx::query_scalar!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 254 | |         r#"
[INFO] [stdout] 255 | |             SELECT id FROM users WHERE id = $1
[INFO] [stdout] 256 | |             AND (status IS NULL OR status = 1)
[INFO] [stdout] 257 | |         "#,
[INFO] [stdout] 258 | |         id
[INFO] [stdout] 259 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:109:16
[INFO] [stdout]     |
[INFO] [stdout] 109 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 110 | |         ImUser,
[INFO] [stdout] 111 | |         r#"SELECT open_id as user_id, name as user_name, password_hash as password,
[INFO] [stdout] 112 | |                 phone as mobile, create_time, update_time, version, del_flag
[INFO] [stdout] ...   |
[INFO] [stdout] 115 | |         user_id
[INFO] [stdout] 116 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:138:16
[INFO] [stdout]     |
[INFO] [stdout] 138 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 139 | |         ImUser,
[INFO] [stdout] 140 | |         r#"SELECT open_id as user_id, name as user_name, password_hash as password,
[INFO] [stdout] 141 | |                 phone as mobile, create_time, update_time, version, del_flag
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |         user_name
[INFO] [stdout] 145 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:168:16
[INFO] [stdout]     |
[INFO] [stdout] 168 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 169 | |         ImUser,
[INFO] [stdout] 170 | |         r#"SELECT open_id as user_id, name as user_name, password_hash as password,
[INFO] [stdout] 171 | |                 phone as mobile, create_time, update_time, version, del_flag
[INFO] [stdout] ...   |
[INFO] [stdout] 174 | |         mobile
[INFO] [stdout] 175 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:214:20
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let existing = sqlx::query!("SELECT id FROM users WHERE open_id = $1", user_id)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 | /     sqlx::query!(
[INFO] [stdout] 226 | |         r#"INSERT INTO users (open_id, name, email, password_hash, phone, create_time, update_time, version, del_flag, status)
[INFO] [stdout] 227 | |          VALUES ($1, $2, $3, $4, $5, $6, $6, 1, 1, 1)"#,
[INFO] [stdout] 228 | |         user_id,
[INFO] [stdout] ...   |
[INFO] [stdout] 233 | |         now
[INFO] [stdout] 234 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 287 | /     sqlx::query!(
[INFO] [stdout] 288 | |         r#"INSERT INTO im_user_data
[INFO] [stdout] 289 | |          (user_id, name, avatar, gender, birthday, location, self_signature,
[INFO] [stdout] 290 | |           friend_allow_type, forbidden_flag, disable_add_friend, silent_flag,
[INFO] [stdout] ...   |
[INFO] [stdout] 308 | |         now
[INFO] [stdout] 309 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:273:16
[INFO] [stdout]     |
[INFO] [stdout] 273 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 274 | |         User,
[INFO] [stdout] 275 | |         r#"
[INFO] [stdout] 276 | |             SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, phone, status, gender
[INFO] [stdout] ...   |
[INFO] [stdout] 279 | |          id
[INFO] [stdout] 280 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 | /         sqlx::query!(
[INFO] [stdout] 328 | |             r#"UPDATE users SET name = $1 WHERE open_id = $2"#,
[INFO] [stdout] 329 | |             n,
[INFO] [stdout] 330 | |             open_id
[INFO] [stdout] 331 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 | /             sqlx::query!(
[INFO] [stdout] 352 | |                 r#"UPDATE users SET phone = NULL WHERE open_id = $1"#,
[INFO] [stdout] 353 | |                 open_id
[INFO] [stdout] 354 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 | /             sqlx::query!(
[INFO] [stdout] 359 | |                 r#"UPDATE users SET phone = $1 WHERE open_id = $2"#,
[INFO] [stdout] 360 | |                 p,
[INFO] [stdout] 361 | |                 open_id
[INFO] [stdout] 362 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 | /             sqlx::query!(
[INFO] [stdout] 372 | |                 r#"UPDATE users SET file_name = NULL WHERE open_id = $1"#,
[INFO] [stdout] 373 | |                 open_id
[INFO] [stdout] 374 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 | /             sqlx::query!(
[INFO] [stdout] 379 | |                 r#"UPDATE users SET file_name = $1 WHERE open_id = $2"#,
[INFO] [stdout] 380 | |                 f,
[INFO] [stdout] 381 | |                 open_id
[INFO] [stdout] 382 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:338:21
[INFO] [stdout]     |
[INFO] [stdout] 338 |       let user_data = sqlx::query_as!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 339 | |         ImUserData,
[INFO] [stdout] 340 | |         "SELECT user_id, name, avatar, gender, birthday, location, self_signature,
[INFO] [stdout] 341 | |                 friend_allow_type, forbidden_flag, disable_add_friend, silent_flag,
[INFO] [stdout] ...   |
[INFO] [stdout] 345 | |         user_id
[INFO] [stdout] 346 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 | /             sqlx::query!(
[INFO] [stdout] 392 | |                 r#"UPDATE users SET abstract = NULL WHERE open_id = $1"#,
[INFO] [stdout] 393 | |                 open_id
[INFO] [stdout] 394 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:398:13
[INFO] [stdout]     |
[INFO] [stdout] 398 | /             sqlx::query!(
[INFO] [stdout] 399 | |                 r#"UPDATE users SET abstract = $1 WHERE open_id = $2"#,
[INFO] [stdout] 400 | |                 a,
[INFO] [stdout] 401 | |                 open_id
[INFO] [stdout] 402 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:409:9
[INFO] [stdout]     |
[INFO] [stdout] 409 | /         sqlx::query!(
[INFO] [stdout] 410 | |             r#"UPDATE users SET gender = $1 WHERE open_id = $2"#,
[INFO] [stdout] 411 | |             g,
[INFO] [stdout] 412 | |             open_id
[INFO] [stdout] 413 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/im_user_service.rs:409:5
[INFO] [stdout]     |
[INFO] [stdout] 409 | /     sqlx::query!(
[INFO] [stdout] 410 | |         r#"INSERT INTO im_user_data
[INFO] [stdout] 411 | |                  (user_id, name, avatar, gender, birthday, location, self_signature,
[INFO] [stdout] 412 | |                   friend_allow_type, forbidden_flag, disable_add_friend, silent_flag,
[INFO] [stdout] ...   |
[INFO] [stdout] 445 | |         now
[INFO] [stdout] 446 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |       let result_id = sqlx::query_scalar!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 110 | |         r#"INSERT INTO users (open_id, name, email, password_hash, phone, status, gender)
[INFO] [stdout] 111 | |         VALUES ($1, $2, $3, $4, $5, 1, 3)
[INFO] [stdout] 112 | |         RETURNING id"#,
[INFO] [stdout] ...   |
[INFO] [stdout] 117 | |         phone
[INFO] [stdout] 118 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:137:17
[INFO] [stdout]     |
[INFO] [stdout] 137 |       let total = sqlx::query_scalar!(
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 138 | |         r#"
[INFO] [stdout] 139 | |         SELECT COUNT(*) as "count!: i64" FROM users
[INFO] [stdout] 140 | |         WHERE name LIKE $1
[INFO] [stdout] 141 | |         "#,
[INFO] [stdout] 142 | |         like_pattern
[INFO] [stdout] 143 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |       let users = sqlx::query_as!(SafeUser, r#"SELECT id, open_id, name, email, file_name, abstract as abstract_field, phone, statu...
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 148 | |         FROM users
[INFO] [stdout] 149 | |         WHERE name LIKE $1 AND (status IS NULL OR status = 1)
[INFO] [stdout] 150 | |         LIMIT $2 OFFSET $3"#, like_pattern, page_size, offset)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:169:16
[INFO] [stdout]     |
[INFO] [stdout] 169 |       let user = sqlx::query_as!(User, r#"SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, ph...
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 170 | |         FROM users WHERE name = $1 AND (status IS NULL OR status = 1)"#, name)
[INFO] [stdout]     | |______________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:190:16
[INFO] [stdout]     |
[INFO] [stdout] 190 |       let user = sqlx::query_as!(User, r#"SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, ph...
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 191 | |         FROM users WHERE email = $1 AND (status IS NULL OR status = 1)"#, email)
[INFO] [stdout]     | |________________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:211:16
[INFO] [stdout]     |
[INFO] [stdout] 211 |       let user = sqlx::query_as!(User, r#"SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, ph...
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 212 | |         FROM users WHERE phone = $1 AND (status IS NULL OR status = 1)"#, phone)
[INFO] [stdout]     | |________________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:232:16
[INFO] [stdout]     |
[INFO] [stdout] 232 |       let user = sqlx::query_as!(User, r#"SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, ph...
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 233 | |         FROM users WHERE open_id = $1 AND (status IS NULL OR status = 1)"#, open_id)
[INFO] [stdout]     | |____________________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:253:18
[INFO] [stdout]     |
[INFO] [stdout] 253 |       let exists = sqlx::query_scalar!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 254 | |         r#"
[INFO] [stdout] 255 | |             SELECT id FROM users WHERE id = $1
[INFO] [stdout] 256 | |             AND (status IS NULL OR status = 1)
[INFO] [stdout] 257 | |         "#,
[INFO] [stdout] 258 | |         id
[INFO] [stdout] 259 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_scalar` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:273:16
[INFO] [stdout]     |
[INFO] [stdout] 273 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 274 | |         User,
[INFO] [stdout] 275 | |         r#"
[INFO] [stdout] 276 | |             SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, phone, status, gender
[INFO] [stdout] ...   |
[INFO] [stdout] 279 | |          id
[INFO] [stdout] 280 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 | /         sqlx::query!(
[INFO] [stdout] 328 | |             r#"UPDATE users SET name = $1 WHERE open_id = $2"#,
[INFO] [stdout] 329 | |             n,
[INFO] [stdout] 330 | |             open_id
[INFO] [stdout] 331 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 | /             sqlx::query!(
[INFO] [stdout] 352 | |                 r#"UPDATE users SET phone = NULL WHERE open_id = $1"#,
[INFO] [stdout] 353 | |                 open_id
[INFO] [stdout] 354 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:358:13
[INFO] [stdout]     |
[INFO] [stdout] 358 | /             sqlx::query!(
[INFO] [stdout] 359 | |                 r#"UPDATE users SET phone = $1 WHERE open_id = $2"#,
[INFO] [stdout] 360 | |                 p,
[INFO] [stdout] 361 | |                 open_id
[INFO] [stdout] 362 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 | /             sqlx::query!(
[INFO] [stdout] 372 | |                 r#"UPDATE users SET file_name = NULL WHERE open_id = $1"#,
[INFO] [stdout] 373 | |                 open_id
[INFO] [stdout] 374 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 | /             sqlx::query!(
[INFO] [stdout] 379 | |                 r#"UPDATE users SET file_name = $1 WHERE open_id = $2"#,
[INFO] [stdout] 380 | |                 f,
[INFO] [stdout] 381 | |                 open_id
[INFO] [stdout] 382 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 | /             sqlx::query!(
[INFO] [stdout] 392 | |                 r#"UPDATE users SET abstract = NULL WHERE open_id = $1"#,
[INFO] [stdout] 393 | |                 open_id
[INFO] [stdout] 394 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:398:13
[INFO] [stdout]     |
[INFO] [stdout] 398 | /             sqlx::query!(
[INFO] [stdout] 399 | |                 r#"UPDATE users SET abstract = $1 WHERE open_id = $2"#,
[INFO] [stdout] 400 | |                 a,
[INFO] [stdout] 401 | |                 open_id
[INFO] [stdout] 402 | |             )
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/service/user_service.rs:409:9
[INFO] [stdout]     |
[INFO] [stdout] 409 | /         sqlx::query!(
[INFO] [stdout] 410 | |             r#"UPDATE users SET gender = $1 WHERE open_id = $2"#,
[INFO] [stdout] 411 | |             g,
[INFO] [stdout] 412 | |             open_id
[INFO] [stdout] 413 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SafeUser`
[INFO] [stdout]  --> src/service/user_service.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::models::{SafeUser, User};
[INFO] [stdout]   |                     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SafeUser`
[INFO] [stdout]  --> src/service/user_service.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::models::{SafeUser, User};
[INFO] [stdout]   |                     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/service/im_friendship_service.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 |       let result = sqlx::query_scalar!(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 14 | |         r#"
[INFO] [stdout] 15 | |             SELECT COUNT(*) "count!: i64" FROM im_friendship
[INFO] [stdout] 16 | |             WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] ...  |
[INFO] [stdout] 23 | |     .fetch_one(conn)
[INFO] [stdout] 24 | |     .await
[INFO] [stdout]    | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/service/im_friendship_service.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |           let user_row = sqlx::query!(
[INFO] [stdout]    |  ________________________^
[INFO] [stdout] 43 | |             r#"SELECT
[INFO] [stdout] 44 | |                 u1.open_id as owner_open_id, u1.name as owner_name, u1.phone as owner_phone,
[INFO] [stdout] 45 | |                 u2.open_id as to_open_id, u2.name as to_name, u2.phone as to_phone
[INFO] [stdout] ...  |
[INFO] [stdout] 55 | |         .fetch_optional(conn)
[INFO] [stdout] 56 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:117:40
[INFO] [stdout]     |
[INFO] [stdout] 117 |                       let check_result = sqlx::query_scalar!(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 118 | |                         r#"SELECT COUNT(*) "count!: i64" FROM im_friendship
[INFO] [stdout] 119 | |                          WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] 120 | |                          AND (del_flag IS NULL OR del_flag = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 125 | |                     .fetch_optional(conn)
[INFO] [stdout] 126 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let friends = sqlx::query_as!(
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     if !friends.is_empty() {
[INFO] [stdout]     |         ------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `friends` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let friends: /* Type */ = sqlx::query_as!(
[INFO] [stdout]     |                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:180:24
[INFO] [stdout]     |
[INFO] [stdout] 180 |       let user_by_name = sqlx::query_scalar!(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 181 | |         r#"
[INFO] [stdout] 182 | |             SELECT open_id FROM users WHERE name = $1
[INFO] [stdout] 183 | |             AND (status IS NULL OR status = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 188 | |     .fetch_optional(conn)
[INFO] [stdout] 189 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:197:27
[INFO] [stdout]     |
[INFO] [stdout] 197 |               let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 198 | |                 ImFriendship,
[INFO] [stdout] 199 | |                 r#"
[INFO] [stdout] 200 | |                     SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 210 | |             .fetch_all(conn)
[INFO] [stdout] 211 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 if !friends.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:229:27
[INFO] [stdout]     |
[INFO] [stdout] 229 |       let user_by_open_id = sqlx::query_scalar!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 230 | |         r#"
[INFO] [stdout] 231 | |             SELECT name FROM users WHERE open_id = $1
[INFO] [stdout] 232 | |             AND (status IS NULL OR status = 1) LIMIT 1
[INFO] [stdout] ...   |
[INFO] [stdout] 236 | |     .fetch_optional(conn)
[INFO] [stdout] 237 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:242:33
[INFO] [stdout]     |
[INFO] [stdout] 242 |         if name != owner_id && !name.is_empty() {
[INFO] [stdout]     |                                 ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/service/im_friendship_service.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 |       let result = sqlx::query_scalar!(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 14 | |         r#"
[INFO] [stdout] 15 | |             SELECT COUNT(*) "count!: i64" FROM im_friendship
[INFO] [stdout] 16 | |             WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] ...  |
[INFO] [stdout] 23 | |     .fetch_one(conn)
[INFO] [stdout] 24 | |     .await
[INFO] [stdout]    | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:245:27
[INFO] [stdout]     |
[INFO] [stdout] 245 |               let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 246 | |                 ImFriendship,
[INFO] [stdout] 247 | |                 r#"
[INFO] [stdout] 248 | |                     SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 258 | |             .fetch_all(conn)
[INFO] [stdout] 259 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 if !friends.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/service/im_friendship_service.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |           let user_row = sqlx::query!(
[INFO] [stdout]    |  ________________________^
[INFO] [stdout] 43 | |             r#"SELECT
[INFO] [stdout] 44 | |                 u1.open_id as owner_open_id, u1.name as owner_name, u1.phone as owner_phone,
[INFO] [stdout] 45 | |                 u2.open_id as to_open_id, u2.name as to_name, u2.phone as to_phone
[INFO] [stdout] ...  |
[INFO] [stdout] 55 | |         .fetch_optional(conn)
[INFO] [stdout] 56 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:117:40
[INFO] [stdout]     |
[INFO] [stdout] 117 |                       let check_result = sqlx::query_scalar!(
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 118 | |                         r#"SELECT COUNT(*) "count!: i64" FROM im_friendship
[INFO] [stdout] 119 | |                          WHERE ((owner_id = $1 AND to_id = $2) OR (owner_id = $2 AND to_id = $1))
[INFO] [stdout] 120 | |                          AND (del_flag IS NULL OR del_flag = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 125 | |                     .fetch_optional(conn)
[INFO] [stdout] 126 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:376:18
[INFO] [stdout]     |
[INFO] [stdout] 376 |       let result = sqlx::query!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 377 | |         r#"
[INFO] [stdout] 378 | |             UPDATE im_friendship
[INFO] [stdout] 379 | |             SET del_flag = 0, update_time = $1, version = version + 1
[INFO] [stdout] ...   |
[INFO] [stdout] 387 | |     .execute(conn)
[INFO] [stdout] 388 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let friends = sqlx::query_as!(
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     if !friends.is_empty() {
[INFO] [stdout]     |         ------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `friends` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let friends: /* Type */ = sqlx::query_as!(
[INFO] [stdout]     |                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:180:24
[INFO] [stdout]     |
[INFO] [stdout] 180 |       let user_by_name = sqlx::query_scalar!(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 181 | |         r#"
[INFO] [stdout] 182 | |             SELECT open_id FROM users WHERE name = $1
[INFO] [stdout] 183 | |             AND (status IS NULL OR status = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 188 | |     .fetch_optional(conn)
[INFO] [stdout] 189 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:438:25
[INFO] [stdout]     |
[INFO] [stdout] 438 |       let current_black = sqlx::query_scalar!(
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 439 | |         r#"
[INFO] [stdout] 440 | |             SELECT black FROM im_friendship WHERE owner_id = $1 AND to_id = $2
[INFO] [stdout] 441 | |         "#,
[INFO] [stdout] ...   |
[INFO] [stdout] 445 | |     .fetch_optional(conn)
[INFO] [stdout] 446 | |     .await?
[INFO] [stdout]     | |___________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:197:27
[INFO] [stdout]     |
[INFO] [stdout] 197 |               let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 198 | |                 ImFriendship,
[INFO] [stdout] 199 | |                 r#"
[INFO] [stdout] 200 | |                     SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 210 | |             .fetch_all(conn)
[INFO] [stdout] 211 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 if !friends.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:507:5
[INFO] [stdout]     |
[INFO] [stdout] 507 | /     sqlx::query!(
[INFO] [stdout] 508 | |         r#"
[INFO] [stdout] 509 | |             DELETE FROM im_friendship_request
[INFO] [stdout] 510 | |             WHERE from_id = $1 AND to_id = $2 AND approve_status = 2
[INFO] [stdout] ...   |
[INFO] [stdout] 515 | |     .execute(conn)
[INFO] [stdout] 516 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:229:27
[INFO] [stdout]     |
[INFO] [stdout] 229 |       let user_by_open_id = sqlx::query_scalar!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 230 | |         r#"
[INFO] [stdout] 231 | |             SELECT name FROM users WHERE open_id = $1
[INFO] [stdout] 232 | |             AND (status IS NULL OR status = 1) LIMIT 1
[INFO] [stdout] ...   |
[INFO] [stdout] 236 | |     .fetch_optional(conn)
[INFO] [stdout] 237 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:242:33
[INFO] [stdout]     |
[INFO] [stdout] 242 |         if name != owner_id && !name.is_empty() {
[INFO] [stdout]     |                                 ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:245:27
[INFO] [stdout]     |
[INFO] [stdout] 245 |               let friends = sqlx::query_as!(
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 246 | |                 ImFriendship,
[INFO] [stdout] 247 | |                 r#"
[INFO] [stdout] 248 | |                     SELECT owner_id, to_id, remark, del_flag, black, create_time, update_time,
[INFO] [stdout] ...   |
[INFO] [stdout] 258 | |             .fetch_all(conn)
[INFO] [stdout] 259 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 if !friends.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:376:18
[INFO] [stdout]     |
[INFO] [stdout] 376 |       let result = sqlx::query!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 377 | |         r#"
[INFO] [stdout] 378 | |             UPDATE im_friendship
[INFO] [stdout] 379 | |             SET del_flag = 0, update_time = $1, version = version + 1
[INFO] [stdout] ...   |
[INFO] [stdout] 387 | |     .execute(conn)
[INFO] [stdout] 388 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:438:25
[INFO] [stdout]     |
[INFO] [stdout] 438 |       let current_black = sqlx::query_scalar!(
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 439 | |         r#"
[INFO] [stdout] 440 | |             SELECT black FROM im_friendship WHERE owner_id = $1 AND to_id = $2
[INFO] [stdout] 441 | |         "#,
[INFO] [stdout] ...   |
[INFO] [stdout] 445 | |     .fetch_optional(conn)
[INFO] [stdout] 446 | |     .await?
[INFO] [stdout]     | |___________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_friendship_service.rs:507:5
[INFO] [stdout]     |
[INFO] [stdout] 507 | /     sqlx::query!(
[INFO] [stdout] 508 | |         r#"
[INFO] [stdout] 509 | |             DELETE FROM im_friendship_request
[INFO] [stdout] 510 | |             WHERE from_id = $1 AND to_id = $2 AND approve_status = 2
[INFO] [stdout] ...   |
[INFO] [stdout] 515 | |     .execute(conn)
[INFO] [stdout] 516 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_user_service.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let existing = sqlx::query!("SELECT id FROM users WHERE open_id = $1", user_id)
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     if existing.is_some() {
[INFO] [stdout]     |        -------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `existing` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let existing: /* Type */ = sqlx::query!("SELECT id FROM users WHERE open_id = $1", user_id)
[INFO] [stdout]     |                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/user_service.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |       let result_id = sqlx::query_scalar!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 110 | |         r#"INSERT INTO users (open_id, name, email, password_hash, phone, status, gender)
[INFO] [stdout] 111 | |         VALUES ($1, $2, $3, $4, $5, 1, 3)
[INFO] [stdout] 112 | |         RETURNING id"#,
[INFO] [stdout] ...   |
[INFO] [stdout] 119 | |     .fetch_one(conn)
[INFO] [stdout] 120 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/im_user_service.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let existing = sqlx::query!("SELECT id FROM users WHERE open_id = $1", user_id)
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     if existing.is_some() {
[INFO] [stdout]     |        -------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `existing` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let existing: /* Type */ = sqlx::query!("SELECT id FROM users WHERE open_id = $1", user_id)
[INFO] [stdout]     |                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/user_service.rs:253:18
[INFO] [stdout]     |
[INFO] [stdout] 253 |       let exists = sqlx::query_scalar!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 254 | |         r#"
[INFO] [stdout] 255 | |             SELECT id FROM users WHERE id = $1
[INFO] [stdout] 256 | |             AND (status IS NULL OR status = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 260 | |     .fetch_optional(conn)
[INFO] [stdout] 261 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/user_service.rs:273:16
[INFO] [stdout]     |
[INFO] [stdout] 273 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 274 | |         User,
[INFO] [stdout] 275 | |         r#"
[INFO] [stdout] 276 | |             SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, phone, status, gender
[INFO] [stdout] ...   |
[INFO] [stdout] 281 | |         .fetch_optional(conn)
[INFO] [stdout] 282 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/user_service.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |       let result_id = sqlx::query_scalar!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 110 | |         r#"INSERT INTO users (open_id, name, email, password_hash, phone, status, gender)
[INFO] [stdout] 111 | |         VALUES ($1, $2, $3, $4, $5, 1, 3)
[INFO] [stdout] 112 | |         RETURNING id"#,
[INFO] [stdout] ...   |
[INFO] [stdout] 119 | |     .fetch_one(conn)
[INFO] [stdout] 120 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/user_service.rs:253:18
[INFO] [stdout]     |
[INFO] [stdout] 253 |       let exists = sqlx::query_scalar!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 254 | |         r#"
[INFO] [stdout] 255 | |             SELECT id FROM users WHERE id = $1
[INFO] [stdout] 256 | |             AND (status IS NULL OR status = 1)
[INFO] [stdout] ...   |
[INFO] [stdout] 260 | |     .fetch_optional(conn)
[INFO] [stdout] 261 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/service/user_service.rs:273:16
[INFO] [stdout]     |
[INFO] [stdout] 273 |       let user = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 274 | |         User,
[INFO] [stdout] 275 | |         r#"
[INFO] [stdout] 276 | |             SELECT id, open_id, name, email, password_hash, file_name, abstract as abstract_field, phone, status, gender
[INFO] [stdout] ...   |
[INFO] [stdout] 281 | |         .fetch_optional(conn)
[INFO] [stdout] 282 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remark_clone`
[INFO] [stdout]    --> src/api/im_friendship_api.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let remark_clone = req.remark.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remark_clone`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_source_clone`
[INFO] [stdout]    --> src/api/im_friendship_api.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let add_source_clone = req.add_source.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_source_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message_clone`
[INFO] [stdout]    --> src/api/im_friendship_api.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let message_clone = req.message.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to_user`
[INFO] [stdout]    --> src/api/im_friendship_api.rs:187:27
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 if let Ok(to_user) = to_user {
[INFO] [stdout]     |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_to_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remark_clone`
[INFO] [stdout]    --> src/api/im_friendship_api.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let remark_clone = req.remark.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remark_clone`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_source_clone`
[INFO] [stdout]    --> src/api/im_friendship_api.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let add_source_clone = req.add_source.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_source_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message_clone`
[INFO] [stdout]    --> src/api/im_friendship_api.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let message_clone = req.message.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to_user`
[INFO] [stdout]    --> src/api/im_friendship_api.rs:187:27
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 if let Ok(to_user) = to_user {
[INFO] [stdout]     |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_to_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `im-server` (bin "im-server") due to 72 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about this error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `im-server` (bin "im-server" test) due to 72 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b11be3d0e9bd4c1c7400f99a7ca693c981281da51ab2eea8590d02935f704041", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b11be3d0e9bd4c1c7400f99a7ca693c981281da51ab2eea8590d02935f704041", kill_on_drop: false }`
[INFO] [stdout] b11be3d0e9bd4c1c7400f99a7ca693c981281da51ab2eea8590d02935f704041
