Skip to content

fix(deps): update rust crate sqlx to 0.9#94

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/sqlx-0.x
Open

fix(deps): update rust crate sqlx to 0.9#94
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/sqlx-0.x

Conversation

@renovate

@renovate renovate Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
sqlx dependencies minor 0.80.9

Release Notes

launchbadge/sqlx (sqlx)

v0.9.0

Compare Source

Important Announcements
New Github Organization

Shortly after this release is published, the SQLx repository will be transferred to a new GitHub organization:
https://github.com/transact-rs/

This is because SQLx has not been owned or maintained by LaunchBadge, LLC. for a few years now, and has since been
informally transferred to the collective ownership of its principal authors. Moving the repository to a new
organization makes this change more clear, and also allows for potentially inviting outside collaborators.

Cargo.lock Removed from Tracking

The Cargo.lock has been removed from tracking in Git. CI should now always test with the latest versions of
all dependencies by default, alongside our pass that checks with cargo generate-lockfile -Z minimal-versions.

This should eliminate the need for any PRs that update dependencies to also update Cargo.lock or
contend with an endless stream of merge conflicts against it.

N.B. cargo install --locked sqlx-cli will no longer work. However, cargo install sqlx-cli has always
used the latest dependencies by default, ignoring the lockfile, so most users should not be affected. For users
requiring reproducible builds, consider maintaining your own lockfile instead; historically, we only ran cargo update
sporadically, so relying on SQLx's lockfile offered few guarantees anyway.

See the manual page for cargo install for details.

Breaking

As per our MSRV policy, the supported Rust version for this release cycle is 1.94.0.

  • [#​3383]: feat: create sqlx.toml format [[@​abonander]]
    • SQLx and sqlx-cli now support per-crate configuration files (sqlx.toml)
    • New functionality includes, but is not limited to:
      • Rename DATABASE_URL for a crate (for multi-database workspaces)
      • Set global type overrides for the macros (supporting custom types)
      • Rename or relocate the _sqlx_migrations table (for multiple crates using the same database)
      • Set characters to ignore when hashing migrations (e.g. ignore whitespace)
    • More to be implemented in future releases.
    • Enable feature sqlx-toml to use.
    • Guide: see sqlx::_config module in documentation.
    • Reference: [Link]
    • Examples (written for Postgres but can be adapted to other databases; PRs welcome!):
      • Multiple databases using DATABASE_URL renaming and global type overrides: [Link]
      • Multi-tenant database using _sqlx_migrations renaming and multiple schemas: [Link]
      • Force use of chrono when time is enabled (e.g. when using tower-sessions-sqlx-store): [Link]
        • Forcing bigdecimal when rust_decimal is enabled is also shown, but problems with chrono/time are more common.
    • Breaking changes:
      • Significant changes to the Migrate trait
      • sqlx::migrate::resolve_blocking() is now #[doc(hidden)] and thus SemVer-exempt.
  • [#​3486]: fix(logs): Correct spelling of aquired_after_secs tracing field [[@​iamjpotts]]
    • Breaking behavior change: implementations parsing tracing logs from SQLx will need to update the spelling.
  • [#​3495]: feat(postgres): remove lifetime from PgAdvisoryLockGuard [[@​bonsairobo]]
  • [#​3526]: Return &mut Self from the migrator set_ methods [[@​nipunn1313]]
    • Minor breaking change: Migrator::set_ignore_missing and set_locking now return &mut Self instead of &Self
      which may break code in rare circumstances.
  • [#​3541]: Postgres: force generic plan for better nullability inference. [[@​joeydewaal]]
    • Breaking change: may alter the output of the query!() macros for certain queries in Postgres.
  • [#​3613]: fix: RawSql lifetime issues [[@​abonander]]
    • Breaking change: adds DB type parameter to all methods of RawSql
  • [#​3670]: Bump ipnetwork to v0.21.1 [[@​BeauGieskens]]
  • [#​3674]: Implement Decode, Encode and Type for Box, Arc, Cow and Rc [[@​joeydewaal]]
    • Breaking change: impl Decode for Cow now always decodes Cow::Owned, lifetime is unlinked
    • See this discussion for motivation: #​3674 (comment)
  • [#​3723]: Add SqlStr [[@​joeydewaal]]
    • Breaking change: all query*() functions now take impl SqlSafeStr
      which is only implemented for &'static str and AssertSqlSafe.
      For all others, wrap in AssertSqlSafe(<query>).
    • This, along with [#​3960], finally allows returning owned queries as the type will be Query<'static, DB>.
    • SqlSafeStr trait is deliberately similar to std::panic::UnwindSafe,
      serving as a speedbump to warn users about naïvely building queries with format!()
      while allowing a workaround for advanced usage that is easy to spot on code review.
  • [#​3800]: Escape PostgreSQL Options [[@​V02460]]
    • Breaking behavior change: options passed to PgConnectOptions::options() are now automatically escaped.
      Manual escaping of options is no longer necessary and may cause incorrect behavior.
  • [#​3821]: Groundwork for 0.9.0-alpha.1 [[@​abonander]]
    • Increased MSRV to 1.86 and set rust-version
    • Deleted deprecated combination runtime+TLS features (e.g. runtime-tokio-native-tls)
    • Deleted re-export of unstable TransactionManager trait in sqlx.
      • Not technically a breaking change because it's #[doc(hidden)],
        but it will break SeaORM if not proactively fixed.
  • [#​3924]: breaking(mysql): assume all non-binary collations compatible with str [[@​abonander]]
    • Text (or text-like) columns which previously were inferred to be Vec<u8> will be inferred to be String
      (this should ultimately fix more code than it breaks).
    • SET NAMES utf8mb4 COLLATE utf8_general_ci is no longer sent by default; instead, SET NAMES utf8mb4 is sent to
      allow the server to select the appropriate default collation (since this is version- and configuration-dependent).
    • MySqlConnectOptions::charset() and ::collation() now imply ::set_names(true) because they don't do anything otherwise.
    • Setting charset doesn't change what's sent in the Protocol::HandshakeResponse41 packet as that normally only
      matters for error messages before SET NAMES is sent.
      The default collation if set_names = false is utf8mb4_general_ci.
    • See this comment for details.
    • Incidental breaking change: RawSql::fetch_optional() now returns sqlx::Result<Option<DB::Row>>
      instead of sqlx::Result<DB::Row>. Whoops.
  • [#​3928]: breaking(sqlite): libsqlite3-sys versioning, feature flags, safety changes [[@​abonander]]
    • SemVer policy changes: libsqlite3-sys version is now specified using a range.
      The maximum of the range may now be increased in any backwards-compatible release.
      The minimum of the range may only be increased in major releases.
      If you have libsqlite3-sys in your dependencies, Cargo should choose a compatible version automatically.
      If otherwise unconstrained, Cargo should choose the latest version supported.
    • SQLite extension loading (including through the new sqlx-toml feature) is now unsafe.
    • Added new non-default features corresponding to conditionally compiled SQLite APIs:
      • sqlite-deserialize enabling SqliteConnection::serialize() and SqliteConnection::deserialize()
      • sqlite-load-extension enabling SqliteConnectOptions::extension() and ::extension_with_entrypoint()
      • sqlite-unlock-notify enables internal use of sqlite3_unlock_notify()
    • SqliteValue and SqliteValueRef changes:
      • The sqlite3_value* interface reserves the right to be stateful.
        Without protection, any call could theoretically invalidate values previously returned, leading to dangling pointers.
      • SqliteValue is now !Sync and SqliteValueRef is !Send to prevent data races from concurrent accesses.
        • Instead, clone or wrap the SqliteValue in Mutex, or convert the SqliteValueRef to an owned value.
      • SqliteValue and any derived SqliteValueRefs now internally track if that value has been used to decode a
        borrowed &[u8] or &str and errors if it's used to decode any other type.
      • This is not expected to affect the vast majority of usages, which should only decode a single type
        per SqliteValue/SqliteValueRef.
      • See new docs on SqliteValue for details.
  • [#​3949]: Postgres: move PgLTree::from to From<Vec<PgLTreeLabel>> implementation [[@​JerryQ17]]
  • [#​3957]: refactor(sqlite): do not borrow bound values, delete lifetime on SqliteArguments [[@​iamjpotts]]
  • [#​3958]: refactor(any): Remove lifetime parameter from AnyArguments [[@​iamjpotts]]
  • [#​3960]: refactor(core): Remove lifetime parameter from Arguments trait [[@​iamjpotts]]
  • [#​3993]: Unescape PostgreSQL passfile password [[@​V02460]]
    • Previously, .pgpass file handling did not process backslash-escapes in the password part.
      Now it does, which may change what password is sent to the server.
  • [#​4008]: make #[derive(sqlx::Type)] automatically generate impl PgHasArrayType by default for newtype structs [[@​papaj-na-wrotkach]]
    • Manual implementations of PgHasArrayType for newtypes will conflict with the generated one.
      Delete the manual impl or add #[sqlx(no_pg_array)] where conflicts occur.
  • [#​4077]: breaking: make offline optional to allow building without serde [[@​CathalMullan]]
  • [#​4094]: Bump bit-vec to v0.8 [[@​zennozenith]]
  • [#​4142]: feat(mysql): add mysql-rsa feature for non-TLS RSA auth [[@​dertin]]
    • Connections requiring RSA password encryption now need to enable the mysql-rsa feature
      or an error will be generated at runtime. RSA encryption is only used for plaintext (non-TLS) connections.
  • [#​4255]: breaking(any+mysql): correctly convert text and blob types to AnyTypeInfo [[@​abonander]]
Added
Changed
Fixed

Configuration

📅 Schedule: (in timezone Asia/Tokyo)

  • Branch creation
    • "before 9am on monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Summary by CodeRabbit

  • Chores
    • バックエンドの内部依存ライブラリをメジャーアップデートしました。エンドユーザー向けの操作や機能に直接の変更はありませんが、安定性と互換性の向上を目的とした保守作業で、今後の信頼性と保守性が改善されます。

@renovate renovate Bot added the dependencies label Jun 7, 2026
@renovate

renovate Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: apps/backend/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path apps/backend/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `sqlx`.
    ... required by package `backend v0.1.0 (/tmp/renovate/repos/github/koyori-app/task/apps/backend)`
versions that meet the requirements `^0.9` (locked to 0.9.0) are: 0.9.0

package `backend` depends on `sqlx` with feature `runtime-tokio-rustls` but `sqlx` does not have that feature.
help: available features: _rt-async-global-executor, _rt-async-std, _rt-smol, _rt-tokio, _sqlite, _unstable-all-types, _unstable-docs, all-databases, any, bigdecimal, bit-vec, bstr, chrono, default, derive, ipnet, ipnetwork, json, mac_address, macros, migrate, mysql, mysql-rsa, postgres, regexp, runtime-async-global-executor, runtime-async-std, runtime-smol, runtime-tokio, rust_decimal, sqlite, sqlite-bundled, sqlite-deserialize, sqlite-load-extension, sqlite-preupdate-hook, sqlite-unbundled, sqlite-unlock-notify, sqlx-macros, sqlx-mysql, sqlx-postgres, sqlx-sqlite, sqlx-toml, time, tls-native-tls, tls-none, tls-rustls, tls-rustls-aws-lc-rs, tls-rustls-ring, tls-rustls-ring-native-roots, tls-rustls-ring-webpki, uuid


failed to select a version for `sqlx` which could resolve this conflict

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 7, 2026

Copy link
Copy Markdown

Deploying koyori with  Cloudflare Pages  Cloudflare Pages

Latest commit: df8cb17
Status:⚡️  Build in progress...

View logs

@renovate renovate Bot force-pushed the renovate/sqlx-0.x branch 23 times, most recently from 208d63e to e461b46 Compare June 9, 2026 17:56
@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

バックエンドの Cargo.tomlsqlx 依存をバージョン 0.8 から 0.9 にアップグレード。既存の runtime-tokio-rustlspostgrestime 機能フラグは変更なし。

Changes

SQLx 依存関係アップグレード

Layer / File(s) Summary
SQLx バージョン更新
apps/backend/Cargo.toml
SQLx 依存関係が 0.8 から 0.9 にアップグレード。既存の runtime-tokio-rustlspostgrestime 機能フラグは維持。

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 依存関係のスキップに、
SQLx が新しい世界へ、
マイナーバージョン、上昇す、
機能フラグは変わらぬまま、
アップデートの道を歩み続け.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed プルリクエストタイトルは、変更内容の主要な部分を明確に要約しており、Rust クレート sqlx を 0.8 から 0.9 に更新するという変更を正確に反映しています。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch renovate/sqlx-0.x

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/backend/Cargo.toml`:
- Line 56: The dependency line sqlx = { version = "0.9", features =
["runtime-tokio-rustls", "postgres", "time"] } requires MSRV 1.94.0, so add
rust-version = "1.94.0" to the same Cargo.toml containing that sqlx entry and
also pin the CI toolchain (create or update rust-toolchain.toml or set the
dtolnay/rust-toolchain action to channel 1.94.0) so CI uses Rust 1.94.0
consistently; ensure changes reference the existing sqlx declaration and the
rust-version key to make the MSRV explicit.
- Line 56: The public APIs in jobs (e.g., the connect/setup functions referenced
in apps/backend/src/jobs/mod.rs and apps/backend/src/jobs/github_webhook.rs)
expose Result<..., sqlx::Error>, which can clash because apalis-postgres pulls
sqlx 0.8 while the crate uses sqlx 0.9; change those function signatures to
return a non-sqlx public error type (for example anyhow::Error or Box<dyn
std::error::Error + Send + Sync>) or the apalis_postgres-specific error type,
and map/convert any internal sqlx errors to that chosen type before returning
(use .map_err(|e| e.into() / anyhow::Error::from(e)) in the connect/setup and
related functions so callers never see sqlx::Error across the crate boundary).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3a24f089-ce72-475d-bfbd-d114de36b944

📥 Commits

Reviewing files that changed from the base of the PR and between cd8f868 and e461b46.

📒 Files selected for processing (1)
  • apps/backend/Cargo.toml

@renovate renovate Bot force-pushed the renovate/sqlx-0.x branch from e461b46 to 1bb6dff Compare June 9, 2026 20:25

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
apps/backend/Cargo.toml (1)

56-56: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

既存の主要な懸念事項が未解決のまま、SQLx 0.9 の破壊的変更による影響確認が必要です

過去のレビューで指摘された2つの重大な問題(MSRV 1.94.0 の未設定、apalis-postgres との sqlx バージョン競合)が未解決です。さらに、PR の説明に記載されている SQLx 0.9 の破壊的変更(query*()SqlStr 要件、Migrate トレイトの変更、型・ライフタイムパラメータの調整、Postgres 固有の動作変更)がコードベースに影響を与えないか確認が必要です。

以下のスクリプトで、sqlx 0.9 へのアップグレード後もコンパイルとテストが通るか検証してください:

#!/bin/bash
set -euo pipefail

echo "== Cargo.toml の sqlx バージョン確認 =="
rg -n 'sqlx.*version' apps/backend/Cargo.toml

echo
echo "== cargo check でコンパイル確認 =="
cd apps/backend
cargo check 2>&1 | head -100

echo
echo "== 依存関係の競合確認(sqlx 0.8 と 0.9 の混在) =="
cargo tree -p sqlx 2>&1 | head -50
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/backend/Cargo.toml` at line 56, The Cargo.toml upgrade to sqlx = "0.9"
may break build and conflicts with apalis-postgres and MSRV requirements; run
the provided verification script in the repository root to (1) confirm the sqlx
version entry in apps/backend/Cargo.toml, (2) run cargo check in apps/backend to
surface compile errors caused by sqlx 0.9 breaking changes (e.g., query*()
requiring SqlStr, Migrate trait signature changes, type/lifetime parameter
adjustments, Postgres-specific behavior), and (3) inspect cargo tree -p sqlx to
detect mixed 0.8/0.9 dependencies and apalis-postgres version mismatches; if
issues appear, either pin sqlx back to a compatible 0.8 version or update
dependent crates (including apalis-postgres) and adjust code paths that use
query*(), Migrate implementations, and any Postgres-specific APIs to the sqlx
0.9 signatures, and ensure MSRV is set to >=1.94.0 in CI/toolchain
configuration.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@apps/backend/Cargo.toml`:
- Line 56: The Cargo.toml upgrade to sqlx = "0.9" may break build and conflicts
with apalis-postgres and MSRV requirements; run the provided verification script
in the repository root to (1) confirm the sqlx version entry in
apps/backend/Cargo.toml, (2) run cargo check in apps/backend to surface compile
errors caused by sqlx 0.9 breaking changes (e.g., query*() requiring SqlStr,
Migrate trait signature changes, type/lifetime parameter adjustments,
Postgres-specific behavior), and (3) inspect cargo tree -p sqlx to detect mixed
0.8/0.9 dependencies and apalis-postgres version mismatches; if issues appear,
either pin sqlx back to a compatible 0.8 version or update dependent crates
(including apalis-postgres) and adjust code paths that use query*(), Migrate
implementations, and any Postgres-specific APIs to the sqlx 0.9 signatures, and
ensure MSRV is set to >=1.94.0 in CI/toolchain configuration.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e9ffbdff-e52a-40fb-b04b-4fe96b1d928c

📥 Commits

Reviewing files that changed from the base of the PR and between e461b46 and 1bb6dff.

📒 Files selected for processing (1)
  • apps/backend/Cargo.toml

@renovate renovate Bot force-pushed the renovate/sqlx-0.x branch from 1bb6dff to ac6de56 Compare June 9, 2026 21:17

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/backend/Cargo.toml (1)

9-18: ⚠️ Potential issue | 🟠 Major

SeaORM側はsqlx 0.9に追従できているが、sqlx 0.8/0.9の同居が残っている点を要確認

  • apps/backend/Cargo.toml では sea-orm = 2.0.0-rc.38 を指定している一方、Cargo.lock 上は sea-orm = 2.0.0-rc.40 に解決されており、sea-orm が必要とする sqlx/sqlx-core0.9.0 になっている(SeaORM→sqlx 0.9 の互換性懸念は、解決済みのrc.40前提では解消している)。
  • ただし Cargo.lock には sqlx 0.8.6 / sqlx-core 0.8.6 も残存しており、sqlx 0.8.xsqlx 0.9.0 が同居している(例:apalis-postgres = 1.0.0-rc.8 側が0.8系を引いている可能性)。jobs/mod.rs のように sqlx::Error 等を公開APIの型として露出している場合は、型分裂による境界エラー/コンパイル不整合に繋がり得る。
  • sqlx = 0.9 の破壊的変更(直接利用しているPgPool/クエリAPI等)については、実コード上の sqlx 依存箇所の洗い出しと反映が必要。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/backend/Cargo.toml` around lines 9 - 18, The crate currently has mixed
sqlx 0.8/0.9 in the dependency graph (Cargo.toml lists sea-orm = 2.0.0-rc.38
while Cargo.lock resolved rc.40 -> sqlx 0.9), which risks type/ABI split
especially where you publicly expose sqlx types (e.g., jobs/mod.rs exposing
sqlx::Error). Fix by aligning dependencies: update Cargo.toml to depend on the
sea-orm version that Cargo.lock resolved (or run cargo update -p sea-orm to
rc.40) and ensure transitive crates (like apalis-postgres) are upgraded to
versions that use sqlx 0.9, or add a [patch.crates-io] override to force sqlx =
"0.9" (or upgrade the conflicting crate) so only sqlx 0.9 is present;
additionally, in jobs/mod.rs stop exposing sqlx::Error in your public
API—wrap/convert sqlx errors into your crate error type (or re-export a single
sqlx type) to avoid cross-version type leakage.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/backend/Cargo.toml`:
- Line 56: The project has mixed sqlx 0.8 and 0.9 artifacts and jobs/mod.rs uses
apalis_postgres::PgPool::connect(...).await with a return type of sqlx::Error;
to fix, ensure sqlx and apalis-postgres are aligned: pick the sqlx major version
you intend (0.9 or 0.8), update apps/backend/Cargo.toml to depend on that exact
sqlx version (and adjust apalis-postgres version if it requires a specific
sqlx), run cargo update to regenerate Cargo.lock so only one sqlx is resolved,
and in apps/backend/src/jobs/mod.rs replace or reconcile the error type used in
the connect call (use the error type exported by the chosen apalis_postgres
version or the matching sqlx::Error from the aligned sqlx) so types match
apalis_postgres::PgPool::connect signature.

---

Outside diff comments:
In `@apps/backend/Cargo.toml`:
- Around line 9-18: The crate currently has mixed sqlx 0.8/0.9 in the dependency
graph (Cargo.toml lists sea-orm = 2.0.0-rc.38 while Cargo.lock resolved rc.40 ->
sqlx 0.9), which risks type/ABI split especially where you publicly expose sqlx
types (e.g., jobs/mod.rs exposing sqlx::Error). Fix by aligning dependencies:
update Cargo.toml to depend on the sea-orm version that Cargo.lock resolved (or
run cargo update -p sea-orm to rc.40) and ensure transitive crates (like
apalis-postgres) are upgraded to versions that use sqlx 0.9, or add a
[patch.crates-io] override to force sqlx = "0.9" (or upgrade the conflicting
crate) so only sqlx 0.9 is present; additionally, in jobs/mod.rs stop exposing
sqlx::Error in your public API—wrap/convert sqlx errors into your crate error
type (or re-export a single sqlx type) to avoid cross-version type leakage.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6222f3bd-3ba8-48c5-a1e1-8c4ccb2fafa9

📥 Commits

Reviewing files that changed from the base of the PR and between 1bb6dff and ac6de56.

📒 Files selected for processing (1)
  • apps/backend/Cargo.toml

Comment thread apps/backend/Cargo.toml
@renovate renovate Bot force-pushed the renovate/sqlx-0.x branch from ac6de56 to 2a19cab Compare June 10, 2026 17:38

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/backend/Cargo.toml`:
- Around line 55-56: The project mixes sqlx 0.9 with apalis-postgres =
"1.0.0-rc.8" which depends on sqlx ^0.8.1 causing duplicate sqlx versions and
trait/type mismatches; either bump apalis-postgres to a release that explicitly
supports sqlx 0.9 or revert sqlx to the 0.8.x series so only one sqlx version is
resolved (then regenerate Cargo.lock), and add an explicit MSRV declaration
(e.g. rust-version = "1.94" in Cargo.toml or add .tool-versions/.rust-version)
so the CI and contributors target the required Rust toolchain. Ensure references
to apalis-postgres and sqlx in Cargo.toml are updated consistently and verify
cargo build passes without multiple sqlx versions.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 488f548d-daf0-4929-8381-5fe04a854dd3

📥 Commits

Reviewing files that changed from the base of the PR and between ac6de56 and 2a19cab.

📒 Files selected for processing (1)
  • apps/backend/Cargo.toml

Comment thread apps/backend/Cargo.toml
Comment on lines 55 to +56
apalis-postgres = { version = "1.0.0-rc.8", default-features = false, features = ["migrate", "tokio-comp", "time"] }
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "time"] }
sqlx = { version = "0.9", features = ["runtime-tokio-rustls", "postgres", "time"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: プロジェクトの rust-version と apalis-postgres の sqlx 依存を検証

echo "== 1) プロジェクトの rust-version / MSRV 設定 =="
rg -n 'rust-version\s*=' Cargo.toml apps/*/Cargo.toml || echo "rust-version が Cargo.toml に見つかりません"

echo ""
echo "== 2) .tool-versions / .rust-version =="
cat .tool-versions 2>/dev/null || echo ".tool-versions が見つかりません"
cat .rust-version 2>/dev/null || echo ".rust-version が見つかりません"

echo ""
echo "== 3) CI 設定での Rust バージョン(参考)=="
fd -e yml -e yaml . .github/workflows | head -n 5 | xargs rg 'rust.*version|toolchain' 2>/dev/null || echo "CI 設定が見つかりません"

echo ""
echo "== 4) Cargo.lock 内の sqlx バージョン解決状況 =="
rg -A 2 'name = "sqlx"' apps/backend/Cargo.lock | head -n 30

echo ""
echo "== 5) apalis-postgres の Cargo.toml 依存(crates.io メタデータ確認)=="
# apalis-postgres 1.0.0-rc.8 が sqlx 0.9 をサポートしているか確認
curl -s https://crates.io/api/v1/crates/apalis-postgres/1.0.0-rc.8/dependencies | \
  jq '.dependencies[] | select(.crate_id == "sqlx") | {crate_id, req}'

Repository: koyori-app/task

Length of output: 922


🌐 Web query:

apalis-postgres 1.0.0-rc.8 は sqlx 0.9 をサポートしていますか?

💡 Result:

apalis-postgres バージョン 1.0.0-rc.8 は、sqlx 0.9 をサポートしていません。 公式の依存関係情報によると、apalis-postgres 1.0.0-rc.8 は sqlx のバージョンとして「^0.8.1」を要求しています [1][2]。そのため、sqlx 0.9 との互換性はありません。

Citations:


sqlx 0.9 アップグレードは apalis-postgres との依存互換性(+MSRV明示)を見直す必要あり

  • apalis-postgres 1.0.0-rc.8 は sqlx ^0.8.1 を要求しており sqlx 0.9 としては噛み合わないため、apps/backend/Cargo.locksqlx 0.8.6sqlx 0.9.0 が併存しています(型/trait 不整合の原因になります)。
  • MSRV: rust-version / .rust-version / .tool-versions の明示がなく、sqlx 0.9 の Rust 1.94.0+ 要求をプロジェクト要件として担保できません(CI は stable 固定のみ)。

apalis-postgres を sqlx 0.9 対応のバージョンへ上げる(または sqlx を 0.8 系へ戻す)+ rust-version = "1.94" 等で MSRV を明示してください。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/backend/Cargo.toml` around lines 55 - 56, The project mixes sqlx 0.9
with apalis-postgres = "1.0.0-rc.8" which depends on sqlx ^0.8.1 causing
duplicate sqlx versions and trait/type mismatches; either bump apalis-postgres
to a release that explicitly supports sqlx 0.9 or revert sqlx to the 0.8.x
series so only one sqlx version is resolved (then regenerate Cargo.lock), and
add an explicit MSRV declaration (e.g. rust-version = "1.94" in Cargo.toml or
add .tool-versions/.rust-version) so the CI and contributors target the required
Rust toolchain. Ensure references to apalis-postgres and sqlx in Cargo.toml are
updated consistently and verify cargo build passes without multiple sqlx
versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants