1.3 KiB
1.3 KiB
SQLite vs Postgres gotchas (letta-cloud core)
SQLite limitations
SQLite has limited support for ALTER TABLE, especially around constraints and
foreign keys. In Alembic this often shows up as:
NotImplementedError: No support for ALTER of constraints in SQLite dialect...
In apps/core, you may hit this when running migrations against SQLite that
drop or change foreign keys or constraints.
How to handle
-
Prefer running schema-changing migrations against Postgres by setting
LETTA_PG_URIand using:uv run alembic upgrade head -
If you must support SQLite, use Alembic batch mode patterns, but for this project most complex migrations should target Postgres.
Autogenerate differences
Running alembic revision --autogenerate against SQLite vs Postgres can
produce different diffs (especially around indexes and constraints).
Recommendations:
- For production/real migrations, always autogenerate against Postgres.
- If you see lots of unexpected index drops/adds, confirm which engine the migration is inspecting and rerun with Postgres.
Engine selection reminder
- Engine is controlled by
letta.settings.DatabaseChoiceand environment (notablyLETTA_PG_URI). just readywill also run migrations; ensure your desired engine is set before relying on its database steps.