15
15
16
16
from litestar import Litestar , get
17
17
18
+ from sqlspec import SQLSpec
18
19
from sqlspec .adapters .aiosqlite import AiosqliteConfig , AiosqliteDriver
19
20
from sqlspec .adapters .duckdb import DuckDBConfig , DuckDBDriver
20
21
from sqlspec .core .statement import SQL
21
- from sqlspec .extensions .litestar import DatabaseConfig , SQLSpec
22
+ from sqlspec .extensions .litestar import SQLSpecPlugin
22
23
23
24
24
25
@get ("/test" , sync_to_thread = True )
@@ -35,22 +36,19 @@ async def simple_sqlite(db_session: AiosqliteDriver) -> dict[str, str]:
35
36
return {"greeting" : greeting ["greeting" ] if greeting is not None else "hi" }
36
37
37
38
38
- sqlspec = SQLSpec (
39
- config = [
40
- DatabaseConfig (config = AiosqliteConfig (), commit_mode = "autocommit" ),
41
- DatabaseConfig (
42
- config = DuckDBConfig (
43
- driver_features = {
44
- "extensions" : [{"name" : "vss" , "force_install" : True }],
45
- "secrets" : [{"secret_type" : "s3" , "name" : "s3_secret" , "value" : {"key_id" : "abcd" }}],
46
- }
47
- ),
48
- connection_key = "etl_connection" ,
49
- session_key = "etl_session" ,
50
- ),
51
- ]
39
+ sql = SQLSpec ()
40
+ sql .add_config (AiosqliteConfig (extension_config = {"litestar" : {"commit_mode" : "autocommit" }}))
41
+ sql .add_config (
42
+ DuckDBConfig (
43
+ driver_features = {
44
+ "extensions" : [{"name" : "vss" , "force_install" : True }],
45
+ "secrets" : [{"secret_type" : "s3" , "name" : "s3_secret" , "value" : {"key_id" : "abcd" }}],
46
+ },
47
+ extension_config = {"litestar" : {"connection_key" : "etl_connection" , "session_key" : "etl_session" }},
48
+ )
52
49
)
53
- app = Litestar (route_handlers = [simple_sqlite , simple_select ], plugins = [sqlspec ])
50
+ plugin = SQLSpecPlugin (sqlspec = sql )
51
+ app = Litestar (route_handlers = [simple_sqlite , simple_select ], plugins = [plugin ])
54
52
55
53
if __name__ == "__main__" :
56
54
import os
0 commit comments