rebuild(stage-3): establish accounts permissions and secure settings
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import sqlite3
|
||||
|
||||
from backend.database.migrations.runner import Migration
|
||||
|
||||
|
||||
def upgrade(connection: sqlite3.Connection) -> None:
|
||||
connection.execute(
|
||||
"""
|
||||
CREATE TABLE llm_models (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
display_name TEXT NOT NULL,
|
||||
display_name_key TEXT NOT NULL UNIQUE,
|
||||
base_url TEXT NOT NULL,
|
||||
model_identifier TEXT NOT NULL,
|
||||
encrypted_api_key TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
updated_by INTEGER NOT NULL REFERENCES users(id) ON DELETE RESTRICT
|
||||
)
|
||||
"""
|
||||
)
|
||||
connection.execute(
|
||||
"""
|
||||
CREATE TABLE llm_configuration (
|
||||
id INTEGER PRIMARY KEY CHECK (id = 1),
|
||||
primary_model_id INTEGER REFERENCES llm_models(id) ON DELETE RESTRICT,
|
||||
fallback_model_id INTEGER REFERENCES llm_models(id) ON DELETE RESTRICT,
|
||||
updated_at TEXT,
|
||||
updated_by INTEGER REFERENCES users(id) ON DELETE RESTRICT,
|
||||
CHECK (
|
||||
fallback_model_id IS NULL
|
||||
OR primary_model_id IS NULL
|
||||
OR fallback_model_id <> primary_model_id
|
||||
)
|
||||
)
|
||||
"""
|
||||
)
|
||||
connection.execute("INSERT INTO llm_configuration (id) VALUES (1)")
|
||||
|
||||
|
||||
def downgrade(connection: sqlite3.Connection) -> None:
|
||||
connection.execute("DROP TABLE llm_configuration")
|
||||
connection.execute("DROP TABLE llm_models")
|
||||
|
||||
|
||||
MIGRATION = Migration(
|
||||
version=2,
|
||||
name="create_model_pool",
|
||||
signature="model-pool:v1:models-primary-fallback-encrypted-key",
|
||||
upgrade=upgrade,
|
||||
downgrade=downgrade,
|
||||
)
|
||||
Reference in New Issue
Block a user