Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content

zippertools/sqlalchemy-14-to-20-codemod

Repository files navigation

sa20-pack

sa20-pack is the public trust layer for one narrow upgrade path: a zero-infrastructure SQLAlchemy 1.4 to 2.0 migration scanner plus proof, reports, and commercial-pack docs.

Website: zippertools.org

Public proof: SQLAlchemy migration proof on public files

Trust Boundary

Do not trust this blindly with your project. Visible GitHub social proof is still weak, the public repo is scanner-first and does not expose the full paid apply engine, and the public proof is intentionally narrow: a few supported examples plus fail-closed examples. Run the free scan on a branch, inspect the report and diff, and trust the result only after your own typecheck, build, and tests pass.

Start With The Exact Breakage

Problem Page
OptionEngine has no execute Fix the OptionEngine execute error
Engine has no execute Fix the Engine execute error
Query.get() warnings Fix LegacyAPIWarning for Query.get
select([..]) legacy syntax Fix legacy select warnings
joinedload_all removal Fix joinedload_all migration issues
Unsure where to start SQLAlchemy 2.0 migration triage checklist
Automation or manual migration Manual migration vs codemod
Pydantic BaseSettings import error Fix BaseSettings import errors
Pydantic @validator warnings Fix Pydantic validator deprecation warnings

It is deliberately opinionated:

  • free scanner first
  • fail closed on ambiguous cases
  • machine-generated migration report every run
  • the public repo does not expose the commercial apply engine

Why this exists

SQLAlchemy's official migration story is good documentation and warning-driven cleanup, but not a maintained product workflow. This public repo establishes trust by showing supported scope, demo value, and machine-generated findings before a buyer ever pays for the commercial migration pack.

Current coverage

  • scans for legacy declarative imports
  • scans for select([..]) list syntax
  • scans for session.query(Model).get(pk)
  • scans for simple string relationship join() and loader options
  • scans for simple DML constructor keyword usage
  • flags unsupported legacy patterns outside safe automation

The paid commercial pack contains the full apply engine and broader coverage.

Who This Is For

  • teams still upgrading a SQLAlchemy 1.4 codebase to 2.0
  • repos that still contain select([..]), Query.get(...), string relationship names, or legacy declarative imports
  • engineers who want a deterministic scan and a machine-generated report before deciding whether to buy the commercial pack

Run the free scan first. The supported subset is intentionally narrow and the product is strongest when the report shows several supported rewrites in one repo.

Do Not Buy This If

  • your repo is already mostly 2.0-safe
  • your upgrade is dominated by engine.execute(...), Query.from_self(), or broad Query API rewrites
  • you want a tool that guesses through ambiguous SQLAlchemy behavior

Quickstart

See quickstart.

Searchable issue pages

The storefront has exact-problem landing pages for the highest-signal queries we already support:

The storefront also carries Pydantic v2 migration pages for the documented supported subset:

Launch check

Before announcing the public site, run:

python -m sa20_pack.launch_readiness

or:

sa20-pack-launch-check

The command fails if required launch assets are missing or if site/config.js still contains placeholder values.

Docs

Public vs Paid

Public repo:

  • free community scanner
  • demo artifacts and public proof
  • website/storefront assets
  • buyer docs, policies, and pricing structure

Paid commercial pack:

  • apply engine
  • broader transform coverage
  • richer rollout templates and presets
  • automated Stripe Checkout with verified digital ZIP delivery

License

MIT, unless the packaging strategy changes before public release.