定位信息增加地址解析
This commit is contained in:
@@ -59,6 +59,37 @@ async def _ensure_schedule_suppressed_until_column(conn) -> None:
|
||||
)
|
||||
|
||||
|
||||
async def _ensure_columns(conn, *, table_name: str, columns: list[tuple[str, str]]) -> None:
|
||||
for column_name, definition in columns:
|
||||
result = await conn.execute(
|
||||
text(
|
||||
"""
|
||||
SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = :table_name
|
||||
AND COLUMN_NAME = :column_name
|
||||
"""
|
||||
),
|
||||
{"table_name": table_name, "column_name": column_name},
|
||||
)
|
||||
if int(result.scalar() or 0) > 0:
|
||||
continue
|
||||
await conn.execute(text(f"ALTER TABLE {table_name} ADD COLUMN {definition}"))
|
||||
|
||||
|
||||
async def _ensure_child_location_address_columns(conn) -> None:
|
||||
await _ensure_columns(
|
||||
conn,
|
||||
table_name="child_location_current",
|
||||
columns=[
|
||||
("address", "address VARCHAR(255) NULL AFTER updated_at"),
|
||||
("address_resolved_at", "address_resolved_at DATETIME NULL AFTER address"),
|
||||
("address_resolve_status", "address_resolve_status TINYINT NULL AFTER address_resolved_at"),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
async def _ensure_device_family_tables(conn) -> None:
|
||||
await conn.execute(
|
||||
text(
|
||||
@@ -173,6 +204,7 @@ async def init_db():
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
await _ensure_manual_sleep_mode_column(conn)
|
||||
await _ensure_schedule_suppressed_until_column(conn)
|
||||
await _ensure_child_location_address_columns(conn)
|
||||
await _ensure_device_family_tables(conn)
|
||||
await engine.dispose()
|
||||
session_logger.info("system", "database", "数据库表已成功创建")
|
||||
|
||||
Reference in New Issue
Block a user