feat(core,backends,frontends,storage): conversations, inject queue, session pool, gateway mcp tools, api frontend
This commit is contained in:
1 parent
50b7057fa4
commit
33ccc78fec
28 files changed
+3543
-345
No files matched your search
@@ -105,9 +105,29 @@ def _add_missing_columns(conn: Connection) -> None:
|
||||
if column.name in existing:
|
||||
continue
|
||||
kind = column.type.compile(conn.dialect)
|
||||
conn.execute(
|
||||
text(f"ALTER TABLE {table.name} ADD COLUMN {column.name} {kind}")
|
||||
)
|
||||
ddl = f"ALTER TABLE {table.name} ADD COLUMN {column.name} {kind}"
|
||||
default = _column_default(column)
|
||||
if default is not None:
|
||||
ddl += f" DEFAULT {default}"
|
||||
conn.execute(text(ddl))
|
||||
|
||||
|
||||
def _column_default(column: Any) -> str | None:
|
||||
"""Literal for ``ADD COLUMN ... DEFAULT`` so old rows get the model default."""
|
||||
server_default = getattr(column, "server_default", None)
|
||||
if server_default is not None:
|
||||
return str(server_default.arg.text)
|
||||
default = getattr(column, "default", None)
|
||||
if default is None or default.is_callable:
|
||||
return None
|
||||
value = default.arg
|
||||
if isinstance(value, bool):
|
||||
return "TRUE" if value else "FALSE"
|
||||
if isinstance(value, int | float):
|
||||
return repr(value)
|
||||
if isinstance(value, str):
|
||||
return "'" + value.replace("'", "''") + "'"
|
||||
return None
|
||||
|
||||
|
||||
# ---- Token CRUD ---------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user