backup
This commit is contained in:
parent
2cd955f835
commit
952c755e1d
129
app.py
129
app.py
@ -1026,6 +1026,7 @@ def sqlite_error(error):
|
||||
app.logger.exception("Database error: %s", error)
|
||||
return jsonify({"error": "A database error occurred."}), 500
|
||||
|
||||
|
||||
def init_db() -> None:
|
||||
UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
@ -1161,29 +1162,6 @@ def init_db() -> None:
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS direct_conversations (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
member_pair_key TEXT UNIQUE NOT NULL,
|
||||
created_at TEXT NOT NULL
|
||||
)
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS direct_conversation_members (
|
||||
direct_conversation_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
added_at TEXT NOT NULL,
|
||||
PRIMARY KEY (direct_conversation_id, user_id),
|
||||
FOREIGN KEY (direct_conversation_id) REFERENCES direct_conversations(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
)
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS messages (
|
||||
@ -1313,7 +1291,6 @@ def init_db() -> None:
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
team_id INTEGER NOT NULL,
|
||||
channel_id INTEGER,
|
||||
parent_page_id INTEGER,
|
||||
slug TEXT COLLATE NOCASE NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
body TEXT NOT NULL DEFAULT '',
|
||||
@ -1327,7 +1304,6 @@ def init_db() -> None:
|
||||
UNIQUE(team_id, slug),
|
||||
FOREIGN KEY (team_id) REFERENCES teams(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (channel_id) REFERENCES channels(id) ON DELETE SET NULL,
|
||||
FOREIGN KEY (parent_page_id) REFERENCES pages(id) ON DELETE SET NULL,
|
||||
FOREIGN KEY (created_by_user_id) REFERENCES users(id) ON DELETE RESTRICT,
|
||||
FOREIGN KEY (updated_by_user_id) REFERENCES users(id) ON DELETE RESTRICT
|
||||
)
|
||||
@ -1344,11 +1320,8 @@ def init_db() -> None:
|
||||
bio_mode TEXT NOT NULL DEFAULT 'txt',
|
||||
website TEXT,
|
||||
location TEXT,
|
||||
status_message TEXT NOT NULL DEFAULT '',
|
||||
banner_attachment_id INTEGER,
|
||||
updated_at TEXT NOT NULL,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (banner_attachment_id) REFERENCES attachments(id) ON DELETE SET NULL
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
)
|
||||
"""
|
||||
)
|
||||
@ -1361,11 +1334,6 @@ def init_db() -> None:
|
||||
name_color TEXT,
|
||||
custom_css TEXT NOT NULL DEFAULT '',
|
||||
theme_mode TEXT NOT NULL DEFAULT 'dark',
|
||||
presence_mode TEXT NOT NULL DEFAULT 'online',
|
||||
profile_background_color TEXT,
|
||||
profile_banner_color TEXT,
|
||||
profile_visibility TEXT NOT NULL DEFAULT 'public',
|
||||
last_active_visibility TEXT NOT NULL DEFAULT 'everyone',
|
||||
updated_at TEXT NOT NULL,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
)
|
||||
@ -1429,31 +1397,6 @@ def init_db() -> None:
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS message_pins (
|
||||
message_id INTEGER PRIMARY KEY,
|
||||
pinned_by_user_id INTEGER NOT NULL,
|
||||
pinned_at TEXT NOT NULL,
|
||||
FOREIGN KEY (message_id) REFERENCES messages(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (pinned_by_user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
)
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS message_bookmarks (
|
||||
message_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
PRIMARY KEY (message_id, user_id),
|
||||
FOREIGN KEY (message_id) REFERENCES messages(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
)
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS presence_events (
|
||||
@ -1468,6 +1411,29 @@ def init_db() -> None:
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS direct_conversations (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
member_pair_key TEXT UNIQUE NOT NULL,
|
||||
created_at TEXT NOT NULL
|
||||
)
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS direct_conversation_members (
|
||||
direct_conversation_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
added_at TEXT NOT NULL,
|
||||
PRIMARY KEY (direct_conversation_id, user_id),
|
||||
FOREIGN KEY (direct_conversation_id) REFERENCES direct_conversations(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
)
|
||||
"""
|
||||
)
|
||||
|
||||
db.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS call_sessions (
|
||||
@ -1565,22 +1531,6 @@ def init_db() -> None:
|
||||
db.execute("ALTER TABLE presence_events ADD COLUMN direct_conversation_id INTEGER")
|
||||
if not column_exists(db, "user_profiles", "badge_text"):
|
||||
db.execute("ALTER TABLE user_profiles ADD COLUMN badge_text TEXT")
|
||||
if not column_exists(db, "user_profiles", "status_message"):
|
||||
db.execute("ALTER TABLE user_profiles ADD COLUMN status_message TEXT NOT NULL DEFAULT ''")
|
||||
if not column_exists(db, "user_profiles", "banner_attachment_id"):
|
||||
db.execute("ALTER TABLE user_profiles ADD COLUMN banner_attachment_id INTEGER")
|
||||
if not column_exists(db, "user_settings", "presence_mode"):
|
||||
db.execute("ALTER TABLE user_settings ADD COLUMN presence_mode TEXT NOT NULL DEFAULT 'online'")
|
||||
if not column_exists(db, "user_settings", "profile_background_color"):
|
||||
db.execute("ALTER TABLE user_settings ADD COLUMN profile_background_color TEXT")
|
||||
if not column_exists(db, "user_settings", "profile_banner_color"):
|
||||
db.execute("ALTER TABLE user_settings ADD COLUMN profile_banner_color TEXT")
|
||||
if not column_exists(db, "user_settings", "profile_visibility"):
|
||||
db.execute("ALTER TABLE user_settings ADD COLUMN profile_visibility TEXT NOT NULL DEFAULT 'public'")
|
||||
if not column_exists(db, "user_settings", "last_active_visibility"):
|
||||
db.execute("ALTER TABLE user_settings ADD COLUMN last_active_visibility TEXT NOT NULL DEFAULT 'everyone'")
|
||||
if not column_exists(db, "pages", "parent_page_id"):
|
||||
db.execute("ALTER TABLE pages ADD COLUMN parent_page_id INTEGER")
|
||||
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_messages_room_id_id ON messages(room_id, id)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_messages_channel_id_id ON messages(channel_id, id)")
|
||||
@ -1592,7 +1542,6 @@ def init_db() -> None:
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_channels_team_id_slug ON channels(team_id, slug)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_channels_legacy_room_id ON channels(legacy_room_id)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_pages_team_updated_at ON pages(team_id, updated_at DESC)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_pages_parent_page_id ON pages(parent_page_id)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_channel_typing_events_updated_at ON channel_typing_events(channel_id, updated_at)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_dm_typing_events_updated_at ON dm_typing_events(direct_conversation_id, updated_at)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_invites_token_hash ON room_invites(token_hash)")
|
||||
@ -1603,7 +1552,6 @@ def init_db() -> None:
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_message_reactions_message ON message_reactions(message_id, emoji)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_message_receipts_user_seen ON message_receipts(user_id, seen_at)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_message_attachments_message_position ON message_attachments(message_id, position)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_message_bookmarks_user_created ON message_bookmarks(user_id, created_at DESC)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_presence_events_updated_at ON presence_events(updated_at)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_presence_events_dm_id ON presence_events(direct_conversation_id, updated_at)")
|
||||
db.execute("CREATE INDEX IF NOT EXISTS idx_direct_conversation_members_user ON direct_conversation_members(user_id, direct_conversation_id)")
|
||||
@ -1648,7 +1596,6 @@ def init_db() -> None:
|
||||
END
|
||||
WHERE role IS NULL
|
||||
OR role = ''
|
||||
OR role NOT IN ('user', 'moderator', 'admin')
|
||||
"""
|
||||
)
|
||||
|
||||
@ -1661,7 +1608,6 @@ def init_db() -> None:
|
||||
END
|
||||
WHERE status IS NULL
|
||||
OR status = ''
|
||||
OR status NOT IN ('active', 'disabled', 'restricted', 'blacklisted')
|
||||
"""
|
||||
)
|
||||
|
||||
@ -1776,8 +1722,6 @@ def init_db() -> None:
|
||||
bio_mode,
|
||||
website,
|
||||
location,
|
||||
status_message,
|
||||
banner_attachment_id,
|
||||
updated_at
|
||||
)
|
||||
SELECT
|
||||
@ -1788,8 +1732,6 @@ def init_db() -> None:
|
||||
'txt',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
NULL,
|
||||
?
|
||||
FROM users
|
||||
""",
|
||||
@ -1804,11 +1746,6 @@ def init_db() -> None:
|
||||
name_color,
|
||||
custom_css,
|
||||
theme_mode,
|
||||
presence_mode,
|
||||
profile_background_color,
|
||||
profile_banner_color,
|
||||
profile_visibility,
|
||||
last_active_visibility,
|
||||
updated_at
|
||||
)
|
||||
SELECT
|
||||
@ -1817,11 +1754,6 @@ def init_db() -> None:
|
||||
NULL,
|
||||
'',
|
||||
'dark',
|
||||
'online',
|
||||
NULL,
|
||||
NULL,
|
||||
'public',
|
||||
'everyone',
|
||||
?
|
||||
FROM users
|
||||
""",
|
||||
@ -1914,10 +1846,8 @@ def bootstrap_admin() -> None:
|
||||
bio_mode,
|
||||
website,
|
||||
location,
|
||||
status_message,
|
||||
banner_attachment_id,
|
||||
updated_at
|
||||
) VALUES (?, ?, '', '', 'txt', '', '', '', NULL, ?)
|
||||
) VALUES (?, ?, '', '', 'txt', '', '', ?)
|
||||
""",
|
||||
(user_id, username, now_iso()),
|
||||
)
|
||||
@ -1930,13 +1860,8 @@ def bootstrap_admin() -> None:
|
||||
name_color,
|
||||
custom_css,
|
||||
theme_mode,
|
||||
presence_mode,
|
||||
profile_background_color,
|
||||
profile_banner_color,
|
||||
profile_visibility,
|
||||
last_active_visibility,
|
||||
updated_at
|
||||
) VALUES (?, '#f7dce8', NULL, '', 'dark', 'online', NULL, NULL, 'public', 'everyone', ?)
|
||||
) VALUES (?, '#f7dce8', NULL, '', 'dark', ?)
|
||||
""",
|
||||
(user_id, now_iso()),
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user