38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
"""
|
|
This module contains a db migration.
|
|
|
|
Migration Name: add_task_definitions
|
|
Migration Version: 20260122201858
|
|
"""
|
|
|
|
from sqlalchemy import text
|
|
|
|
|
|
async def upgrade(c):
|
|
sql: list[str] = [
|
|
"""
|
|
CREATE TABLE IF NOT EXISTS "task_definitions" (
|
|
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
"name" TEXT NOT NULL UNIQUE,
|
|
"priority" INTEGER NOT NULL DEFAULT 0,
|
|
"enabled" BOOLEAN NOT NULL DEFAULT 1,
|
|
"match_url" JSON NOT NULL,
|
|
"definition" JSON NOT NULL DEFAULT '{}',
|
|
"created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
""",
|
|
'CREATE INDEX IF NOT EXISTS "ix_task_definitions_name" ON "task_definitions" ("name");',
|
|
'CREATE INDEX IF NOT EXISTS "ix_task_definitions_priority" ON "task_definitions" ("priority");',
|
|
'CREATE INDEX IF NOT EXISTS "ix_task_definitions_match_url" ON "task_definitions" ("match_url");',
|
|
'CREATE INDEX IF NOT EXISTS "ix_task_definitions_enabled" ON "task_definitions" ("enabled");',
|
|
]
|
|
for sql_stmt in sql:
|
|
await c.execute(text(sql_stmt))
|
|
|
|
|
|
async def downgrade(c):
|
|
sql = """
|
|
DROP TABLE IF EXISTS "task_definitions";
|
|
"""
|
|
await c.execute(text(sql))
|