prefect
prefect copied to clipboard
Ubuntu clean install sqlalchemy error when running prefect server start
Bug summary
I created a environment, pip install -U prefect
and tried running prefect server start
and get the below error.
Thanks for any help!
trace and pip freeze
$ python --version Python 3.12.7
$ prefect server start
___ ___ ___ ___ ___ ___ _____
| _ \ _ \ __| __| __/ __|_ _|
| _/ / _|| _|| _| (__ | |
|_| |_|_\___|_| |___\___| |_|
Configure Prefect to communicate with the server with:
prefect config set PREFECT_API_URL=http://127.0.0.1:4200/api
View the API reference documentation at http://127.0.0.1:4200/docs
Check out the dashboard at http://127.0.0.1:4200
04:53:36.736 | ERROR | uvicorn.error - Traceback (most recent call last):
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
self.dialect.do_execute(
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
cursor.execute(statement, parameters)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 147, in execute
self._adapt_connection._handle_exception(error)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 298, in _handle_exception
raise error
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 129, in execute
self.await_(_cursor.execute(operation, parameters))
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/aiosqlite/cursor.py", line 48, in execute
await self._execute(self._cursor.execute, sql, parameters)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/aiosqlite/cursor.py", line 40, in _execute
return await self._conn._execute(fn, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/aiosqlite/core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/aiosqlite/core.py", line 115, in run
result = function()
^^^^^^^^^^
sqlite3.OperationalError: near "FROM": syntax error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/starlette/routing.py", line 693, in lifespan
async with self.lifespan_context(app) as maybe_state:
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/contextlib.py", line 210, in __aenter__
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/api/server.py", line 599, in lifespan
await run_migrations()
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/api/server.py", line 508, in run_migrations
await db.create_db()
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/database/interface.py", line 56, in create_db
await self.run_migrations_upgrade()
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/database/interface.py", line 64, in run_migrations_upgrade
await run_sync_in_worker_thread(alembic_upgrade)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 269, in run_sync_in_worker_thread
result = await anyio.to_thread.run_sync(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 943, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 279, in call_with_mark
return call()
^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/database/alembic_commands.py", line 28, in wrapper
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/database/alembic_commands.py", line 64, in alembic_upgrade
alembic.command.upgrade(alembic_config(), revision, sql=dry_run)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/command.py", line 406, in upgrade
script.run_env()
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/script/base.py", line 586, in run_env
util.load_python_file(self.dir, "env.py")
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/util/pyfiles.py", line 95, in load_python_file
module = load_module_py(module_id, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/util/pyfiles.py", line 113, in load_module_py
spec.loader.exec_module(module) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/database/migrations/env.py", line 179, in <module>
run_async_from_worker_thread(apply_migrations)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/utilities/asyncutils.py", line 290, in run_async_from_worker_thread
return anyio.from_thread.run(call)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/anyio/from_thread.py", line 59, in run
return async_backend.run_async_from_thread(func, args, token=token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2481, in run_async_from_thread
return f.result()
^^^^^^^^^^
File "/usr/lib/python3.12/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2468, in task_wrapper
return await func(*args)
^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/database/migrations/env.py", line 168, in apply_migrations
await connection.run_sync(do_run_migrations)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py", line 886, in run_sync
return await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
result = context.switch(value)
^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/database/migrations/env.py", line 137, in do_run_migrations
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/runtime/environment.py", line 946, in run_migrations
self.get_context().run_migrations(**kw)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/runtime/migration.py", line 628, in run_migrations
step.migration_fn(**kw)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/prefect/server/database/migrations/versions/sqlite/2024_09_16_162719_4ad4658cbefe_add_deployment_to_global_concurrency_.py", line 51, in upgrade
op.execute(sql)
File "<string>", line 8, in execute
File "<string>", line 3, in execute
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/operations/ops.py", line 2551, in execute
return operations.invoke(op)
^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/operations/base.py", line 442, in invoke
return fn(self, operation)
^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/operations/toimpl.py", line 236, in execute_sql
operations.migration_context.impl.execute(
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/ddl/impl.py", line 217, in execute
self._exec(sql, execution_options)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/alembic/ddl/impl.py", line 210, in _exec
return conn.execute(construct, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
return meth(
^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
return connection._execute_clauseelement(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
self.dialect.do_execute(
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
cursor.execute(statement, parameters)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 147, in execute
self._adapt_connection._handle_exception(error)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 298, in _handle_exception
raise error
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 129, in execute
self.await_(_cursor.execute(operation, parameters))
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/aiosqlite/cursor.py", line 48, in execute
await self._execute(self._cursor.execute, sql, parameters)
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/aiosqlite/cursor.py", line 40, in _execute
return await self._conn._execute(fn, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/aiosqlite/core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
File "/home/{USER}/git/jm_prefect/.venv/lib/python3.12/site-packages/aiosqlite/core.py", line 115, in run
result = function()
^^^^^^^^^^
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "FROM": syntax error
[SQL:
WITH deployment_limit_mapping AS (
SELECT d.id AS deployment_id, l.id AS limit_id
FROM deployment d
JOIN concurrency_limit_v2 l ON l.name = 'deployment:' || d.id
)
UPDATE deployment
SET concurrency_limit_id = dlm.limit_id
FROM deployment_limit_mapping dlm
WHERE deployment.id = dlm.deployment_id;
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
04:53:36.741 | ERROR | uvicorn.error - Application startup failed. Exiting.
Server stopped!
`
$ pip freeze
aiosqlite==0.20.0
alembic==1.13.3
annotated-types==0.7.0
anyio==4.6.2.post1
apprise==1.9.0
asgi-lifespan==2.1.0
asyncpg==0.30.0
attrs==24.2.0
cachetools==5.5.0
certifi==2024.8.30
cffi==1.17.1
charset-normalizer==3.4.0
click==8.1.7
cloudpickle==2.2.1
colorama==0.4.6
coolname==2.2.0
croniter==1.4.1
cryptography==43.0.3
dateparser==1.2.0
Deprecated==1.2.14
docker==6.1.3
exceptiongroup==1.2.2
fastapi==0.115.4
fsspec==2024.10.0
google-auth==2.35.0
graphviz==0.20.3
greenlet==3.1.1
griffe==1.5.1
h11==0.14.0
h2==4.1.0
hpack==4.0.0
httpcore==1.0.6
httpx==0.27.2
humanize==4.11.0
hyperframe==6.0.1
idna==3.10
importlib_metadata==8.4.0
Jinja2==3.1.4
jinja2-humanize-extension==0.4.0
jsonpatch==1.33
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
kubernetes==27.2.0
Mako==1.3.6
Markdown==3.7
markdown-it-py==3.0.0
MarkupSafe==3.0.2
mdurl==0.1.2
oauthlib==3.2.2
opentelemetry-api==1.27.0
orjson==3.10.10
packaging==24.1
pathspec==0.12.1
pendulum==3.0.0
prefect==3.1.0
prometheus_client==0.21.0
pyasn1==0.6.1
pyasn1_modules==0.4.1
pycparser==2.22
pydantic==2.9.2
pydantic-extra-types==2.9.0
pydantic-settings==2.6.0
pydantic_core==2.23.4
Pygments==2.18.0
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
python-slugify==8.0.4
pytz==2023.4
PyYAML==6.0.2
readchar==4.2.0
referencing==0.35.1
regex==2024.9.11
requests==2.32.3
requests-oauthlib==2.0.0
rfc3339-validator==0.1.4
rich==13.9.3
rpds-py==0.20.1
rsa==4.9
ruamel.yaml==0.18.6
ruamel.yaml.clib==0.2.12
shellingham==1.5.4
six==1.16.0
sniffio==1.3.1
SQLAlchemy==2.0.36
starlette==0.41.2
text-unidecode==1.3
time-machine==2.16.0
toml==0.10.2
typer==0.12.5
typing_extensions==4.12.2
tzdata==2024.2
tzlocal==5.2
ujson==5.10.0
urllib3==2.2.3
uvicorn==0.32.0
websocket-client==1.8.0
websockets==13.1
wrapt==1.16.0
zipp==3.20.2
Version info
Version: 3.1.0
API version: 0.8.4
Python version: 3.12.7
Git commit: a83ba39b
Built: Thu, Oct 31, 2024 12:43 PM
OS/Arch: linux/x86_64
Profile: local
Server type: unconfigured
Pydantic version: 2.9.2
Additional context
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal