Skip to main content

sqlalchemy-lsp

Language server for SQLAlchemy ORM and Alembic. Diagnostics, completions, hover, navigation, and a headless CLI linter — one Rust binary, any LSP-capable editor.

Features

Diagnostics missing tablename, duplicate tablename/column, unknown FK table/column, FK type mismatch, relationship wiring errors, back_populates mismatch, uselist mismatch, orphan cascades, circular relationships, Alembic migration checks
Completions FK strings, relationship() kwargs and values, mapped_column() kwargs, __table_args__ column names, model-constructor keywords, Alembic op.* names and arguments, snippets
Hover model card, column card (type, nullability, FK target, indexes), FK resolution, relationship card, cascade tokens, back_populates counterpart
Navigation go-to-definition, find references, rename — models, columns, relationships, FK targets
Signature help model constructors, relationship() kwargs
Symbols models and Alembic revisions in the symbol picker
Inlay hints resolved FK targets inline
Code actions generate __tablename__, fix back_populates, add missing FK column
Schema view ER diagram of the workspace models
check CLI same diagnostics as the LSP — sqlalchemy-lsp check .

Diagnostics

Code Severity What it catches
SQLA-W101 warning missing __tablename__
SQLA-E102 error duplicate __tablename__
SQLA-E103 error duplicate column name
SQLA-E105 error __table_args__ references unknown column
SQLA-W201 warning nullable=True column typed as non-optional
SQLA-E301 error FK references unknown table
SQLA-E302 error FK references unknown column
SQLA-W303 warning FK type mismatch
SQLA-E401 error relationship target not found
SQLA-W402 warning back_populates points at wrong attribute
SQLA-W403 warning back_populates target not found
SQLA-W404 warning uselist disagrees with cardinality
SQLA-W405 warning relationship target mismatch
SQLA-H406 hint missing FK for relationship
SQLA-H407 hint one-to-one missing unique=True
SQLA-W408 warning unknown cascade token
SQLA-W409 warning orphan cascade without delete
SQLA-H410 hint circular relationship

Best-practice lints (SQLA-W1xx–SQLA-H4xx) default on and cover modernization, nullable hygiene, and Alembic migration checks.

Installation

uv tool install sqlalchemy-lsp

Or with pip:

pip install sqlalchemy-lsp

Or download a pre-built binary from the releases page.

Configuration

Zero config for standard projects. Place a sqlalchemy-lsp.toml or [tool.sqlalchemy-lsp] section in pyproject.toml at the project root.

# sqlalchemy-lsp.toml

# Path to the declarative base (auto-detected if absent)
# base = "app/database.py"

# Extra source roots for import resolution
# source_roots = ["src"]

[diagnostics]
# Run only these codes
# select = ["SQLA-E301", "SQLA-E401"]

# Suppress codes
ignore = ["SQLA-H406"]

# Override severity per code
[diagnostics.severity]
"SQLA-W303" = "error"

Suppress a single line with # noqa or # noqa: SQLA-W303.

CLI

# Run diagnostics
sqlalchemy-lsp check .
sqlalchemy-lsp check app/models/ --select SQLA-E3xx --ignore SQLA-H406
sqlalchemy-lsp check --format json

# Print the workspace ER schema
sqlalchemy-lsp schema

# Print model statistics
sqlalchemy-lsp stats

Editor Setup

Zed

Install from the Zed extensions panel (Cmd+Shift+X) — search for sqlalchemy-lsp and click Install. It activates automatically for Python files.

To control server order alongside other language servers, add to ~/.config/zed/settings.json:

{
  "languages": {
    "Python": { "language_servers": ["sqlalchemy-lsp", "..."] }
  }
}

Helix

Merge editors/helix/languages.toml into ~/.config/helix/languages.toml.

Neovim

Requires Neovim 0.11+. Use the snippet from editors/neovim/sqlalchemy_lsp.lua or add to your init.lua:

vim.lsp.config('sqlalchemy_lsp', {
  cmd = { 'sqlalchemy-lsp', 'lsp', '--stdio' },
  filetypes = { 'python' },
  root_markers = { 'pyproject.toml', 'sqlalchemy-lsp.toml', 'alembic.ini', '.git' },
})
vim.lsp.enable('sqlalchemy_lsp')

Other editors

The server speaks standard LSP over stdio:

sqlalchemy-lsp lsp --stdio

License

MIT

Metadata

Release files for sqlalchemy-lsp 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for sqlalchemy-lsp 0.2.3
File Actions
sqlalchemy_lsp-0.2.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for sqlalchemy_lsp-0.2.3-py3-none-win_amd64.whl
sqlalchemy_lsp-0.2.3-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details for sqlalchemy_lsp-0.2.3-py3-none-manylinux_2_28_x86_64.whl
sqlalchemy_lsp-0.2.3-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details for sqlalchemy_lsp-0.2.3-py3-none-manylinux_2_28_aarch64.whl
sqlalchemy_lsp-0.2.3-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for sqlalchemy_lsp-0.2.3-py3-none-macosx_11_0_arm64.whl
sqlalchemy_lsp-0.2.3-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for sqlalchemy_lsp-0.2.3-py3-none-macosx_10_12_x86_64.whl

Total release size: 12.1 MB

Release files / sqlalchemy_lsp-0.2.3-py3-none-win_amd64.whl

Download URL sqlalchemy_lsp-0.2.3-py3-none-win_amd64.whl
Size 2.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
a5eee175d130cf33c15031b8832911eec09bb899d863ad06e568959b1aab3f61
BLAKE2b-256 checksum
How to use checksums
6d5e873f292fef40c0a986273c8945f6f2f56542e98861f5361b82a445f48cfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sqlalchemy_lsp-0.2.3-py3-none-manylinux_2_28_x86_64.whl

Download URL sqlalchemy_lsp-0.2.3-py3-none-manylinux_2_28_x86_64.whl
Size 2.5 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
391fc70501a965f0d04d3c99d8e6067e6d6e1f8c549f720517c51aef4eaa2550
BLAKE2b-256 checksum
How to use checksums
a8f668b6d36547f8517646e6ce5e2cee86c68f4e5b2d47342e8385c849ca3cf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sqlalchemy_lsp-0.2.3-py3-none-manylinux_2_28_aarch64.whl

Download URL sqlalchemy_lsp-0.2.3-py3-none-manylinux_2_28_aarch64.whl
Size 2.4 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
fe4e26e06999e446b1e52d5b57339c56f9af3c8298e7f0ab472d2829a7f2cb99
BLAKE2b-256 checksum
How to use checksums
278f5015694f33ac20e3bc23bdb2512331bdda8c0129a87eab570b09274d4dc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sqlalchemy_lsp-0.2.3-py3-none-macosx_11_0_arm64.whl

Download URL sqlalchemy_lsp-0.2.3-py3-none-macosx_11_0_arm64.whl
Size 2.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7bf3e2630a7726ae8562d6ea8cd65dbab96c3618a488bd106dfe140ce34b5ea7
BLAKE2b-256 checksum
How to use checksums
74eeedda70ec236288d0e6ebd4408bdbe1deb32243039e7280c81f7bea7dec55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sqlalchemy_lsp-0.2.3-py3-none-macosx_10_12_x86_64.whl

Download URL sqlalchemy_lsp-0.2.3-py3-none-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
40606c24edd81e2d786db93c32dd6394b41f2978c01647f812fe7ed377329df1
BLAKE2b-256 checksum
How to use checksums
60e166b6c7982872a23fa9441a9e7572a0ac906b9467e705a62b4c89850eba38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for sqlalchemy-lsp 0.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page