-
Notifications
You must be signed in to change notification settings - Fork 131
Open
Description
Hello!
Recently we've installed PgDog and have been trying to test it with our workload. Now we're stuck on a broken Alembic migration that prevents application startup. Once we enable prepared statements, the crash appears, so it looks like this bug is somehow connected to PgDog and prepared statements.
It returns a somewhat strange message that doesn't correspond to reality. The desired record exists in the alembic_version table, so it looks completely strange.
A bit more details:
traceback
ERROR: Traceback (most recent call last):
File "/app/.venv/lib/python3.13/site-packages/alembic/script/base.py", line 213, in _catch_revision_errors
yield
File "/app/.venv/lib/python3.13/site-packages/alembic/script/base.py", line 421, in _upgrade_revs
for script in reversed(list(revs))
~~~~^^^^^^
File "/app/.venv/lib/python3.13/site-packages/alembic/script/revision.py", line 814, in iterate_revisions
revisions, heads = fn(
~~^
upper,
^^^^^^
...<3 lines>...
assert_relative_length=assert_relative_length,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/app/.venv/lib/python3.13/site-packages/alembic/script/revision.py", line 1475, in _collect_upgrade_revisions
current_revisions = self.get_revisions(lower)
File "/app/.venv/lib/python3.13/site-packages/alembic/script/revision.py", line 542, in get_revisions
return sum([self.get_revisions(id_elem) for id_elem in id_], ())
~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/app/.venv/lib/python3.13/site-packages/alembic/script/revision.py", line 565, in get_revisions
return tuple(
self._revision_for_ident(rev_id, branch_label)
for rev_id in resolved_id
)
File "/app/.venv/lib/python3.13/site-packages/alembic/script/revision.py", line 566, in <genexpr>
self._revision_for_ident(rev_id, branch_label)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.13/site-packages/alembic/script/revision.py", line 637, in _revision_for_ident
raise ResolutionError(
...<11 lines>...
)
alembic.script.revision.ResolutionError: No such revision or branch '005_add_service_environments'
The sqlalchemy configuration is deadly simple
config
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
from src.config import settings
# Create async engine with connection pooling
engine = create_async_engine(
settings.DATABASE_URL,
echo=False,
pool_size=10,
max_overflow=20,
connect_args={"statement_cache_size": 100}, # <<< setting this value greater than 0 breaks everything
)pgdog.toml
[general]
host = "0.0.0.0"
port = 5432
pooler_mode = "transaction"
default_pool_size = 5
openmetrics_port = 9187
[[databases]]
name = "foo"
host = "postgres-misc.foo.svc.cluster.local"
port = 5432
database_name = "foo"
role = "primary"Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels