当前版本:
dependencies = [
"uvicorn>=0.18.3",
"pydantic[dotenv]>=2.0.0",
"pydantic-settings>=2.1.0",
"aiosqlite>=0.15.0",
"fastapi-user-auth<0.8.0,>=0.7.0",
"fastapi-amis-admin-nav<0.2.0,>=0.1.3",
"fastapi-scheduler<0.1.0,>=0.0.15",
"sqlmodelx>=0.0.9",
"alembic>=1.7.6",
]
经过多次验证,sqlite不会报错,但使用postgresql启动报错,报错原因为类型不匹配:
详细错误如下:
Traceback (most recent call last):
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\starlette\routing.py", line 677, in lifespan
async with self.lifespan_context(app) as maybe_state:
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\starlette\routing.py", line 566, in aenter
await self._router.startup()
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\starlette\routing.py", line 654, in startup
await handler()
File "D:\code\github\fastapi-user-auth-demo.\backend\main.py", line 47, in startup
await site.router.startup()
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\starlette\routing.py", line 654, in startup
await handler()
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\fastapi_amis_admin_nav\admin.py", line 80, in sync_pages
await self.site.db.async_run_sync(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy_database\database.py", line 193, in run_sync
return await self.session.run_sync(fn, *args, **kwargs)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\ext\asyncio\session.py", line 389, in run_sync
return await greenlet_spawn(fn, self.sync_session, *arg, **kw)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\util_concurrency_py3k.py", line 192, in greenlet_spawn
result = context.switch(value)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\fastapi_amis_admin_nav\admin.py", line 81, in 
lambda session: AmisPageManager(session).site_to_db(self.site).db_to_site(self.site)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\fastapi_amis_admin_nav\utils.py", line 70, in site_to_db
parent_id = append_page_to_db(admin_group)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\fastapi_amis_admin_nav\utils.py", line 65, in append_page_to_db
self.session.flush()  # 刷新,获取page_id
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\orm\session.py", line 4312, in flush
self._flush(objects)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\orm\session.py", line 4447, in _flush
with util.safe_reraise():
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\util\langhelpers.py", line 146, in exit
raise exc_value.with_traceback(exc_tb)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\orm\session.py", line 4408, in _flush
flush_context.execute()
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\orm\unitofwork.py", line 466, in execute
rec.execute(self)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\orm\unitofwork.py", line 642, in execute
util.preloaded.orm_persistence.save_obj(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\orm\persistence.py", line 93, in save_obj
_emit_insert_statements(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\orm\persistence.py", line 1226, in _emit_insert_statements
result = connection.execute(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\engine\base.py", line 1416, in execute
return meth(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\sql\elements.py", line 516, in _execute_on_connection
return connection._execute_clauseelement(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\engine\base.py", line 1639, in _execute_clauseelement
ret = self._execute_context(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\engine\base.py", line 1848, in _execute_context
return self._exec_single_context(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\engine\base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\engine\base.py", line 2343, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\engine\base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\engine\default.py", line 922, in do_execute
cursor.execute(statement, parameters)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 591, in execute
self.adapt_connection.await(
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\util_concurrency_py3k.py", line 125, in await_only
return current.driver.switch(awaitable)  # type: ignore[no-any-return]
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\util_concurrency_py3k.py", line 185, in greenlet_spawn
value = await result
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 569, in _prepare_and_execute
self._handle_exception(error)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 520, in _handle_exception
self._adapt_connection._handle_exception(error)
File "d:\code\github\fastapi-user-auth-demo.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 808, in _handle_exception
raise translated_error from error
sqlalchemy.exc.DBAPIError: (sqlalchemy.dialects.postgresql.asyncpg.Error) <class 'asyncpg.exceptions.DataError'>: invalid input for query argument $1: 6 (expected str, got int)
[SQL: INSERT INTO system_page (type, url, label, icon, sort, "desc", page_schema, parent_id, unique_id, "tabsMode", visible, is_group, is_custom, is_active, is_locked, update_time) VALUES ($1::VARCHAR, $2::VARCHAR, $3::VARCHAR, $4::VARCHAR, $5::INTEGER, $6::VARCHAR, $7::VARCHAR, $8::INTEGER, $9::VARCHAR, $10::tabsmodeenum, $11::BOOLEAN, $12::BOOLEAN, $13::BOOLEAN, $14::BOOLEAN, $15::BOOLEAN, $16::TIMESTAMP WITHOUT TIME ZONE) RETURNING system_page.id]
[parameters: (6, '/admin/', 'FastAPI-Amis-Admin', 'https://baidu.gitee.io/amis/static/favicon_b3b0647.png', 0, '', '{"label":"FastAPI-Amis-Admin","icon":"https://baidu.gitee.io/amis/static/favicon_b3b0647.png","url":"/admin/"}', None, 'AuthAdminSite', None, True, True, False, True, False, datetime.datetime(2023, 12, 28, 22, 40, 20, 849744))]
(Background on this error at: https://sqlalche.me/e/20/dbapi)