Migration improvements 2

This commit is contained in:
Jack Kingsman
2026-04-11 00:38:47 -07:00
parent 53b341d6fb
commit 4e73cd39c8
24 changed files with 41 additions and 36 deletions
+2 -2
View File
@@ -11,7 +11,7 @@ jobs:
steps: steps:
- name: Check out repository - name: Check out repository
uses: actions/checkout@v5 uses: actions/checkout@v6
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v6
@@ -44,7 +44,7 @@ jobs:
steps: steps:
- name: Check out repository - name: Check out repository
uses: actions/checkout@v5 uses: actions/checkout@v6
- name: Set up Node.js - name: Set up Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@v6
@@ -1,5 +1,5 @@
from hashlib import sha256
import logging import logging
from hashlib import sha256
import aiosqlite import aiosqlite
+1 -1
View File
@@ -1,6 +1,6 @@
import json import json
import uuid
import logging import logging
import uuid
import aiosqlite import aiosqlite
@@ -1,5 +1,5 @@
from hashlib import sha256
import logging import logging
from hashlib import sha256
import aiosqlite import aiosqlite
+1 -1
View File
@@ -1,6 +1,6 @@
import json import json
import uuid
import logging import logging
import uuid
import aiosqlite import aiosqlite
+1 -1
View File
@@ -1,6 +1,6 @@
import json import json
import uuid
import logging import logging
import uuid
import aiosqlite import aiosqlite
@@ -1,4 +1,3 @@
import json
import logging import logging
import aiosqlite import aiosqlite
+18 -6
View File
@@ -351,7 +351,9 @@ class TestMigration036:
) )
await conn.commit() await conn.commit()
from app.migrations._036_create_fanout_configs import migrate as _migrate_036_create_fanout_configs from app.migrations._036_create_fanout_configs import (
migrate as _migrate_036_create_fanout_configs,
)
await _migrate_036_create_fanout_configs(conn) await _migrate_036_create_fanout_configs(conn)
@@ -382,7 +384,9 @@ class TestMigration036:
) )
await conn.commit() await conn.commit()
from app.migrations._036_create_fanout_configs import migrate as _migrate_036_create_fanout_configs from app.migrations._036_create_fanout_configs import (
migrate as _migrate_036_create_fanout_configs,
)
await _migrate_036_create_fanout_configs(conn) await _migrate_036_create_fanout_configs(conn)
@@ -413,7 +417,9 @@ class TestMigration036:
) )
await conn.commit() await conn.commit()
from app.migrations._036_create_fanout_configs import migrate as _migrate_036_create_fanout_configs from app.migrations._036_create_fanout_configs import (
migrate as _migrate_036_create_fanout_configs,
)
await _migrate_036_create_fanout_configs(conn) await _migrate_036_create_fanout_configs(conn)
@@ -439,7 +445,9 @@ class TestMigration036:
await conn.execute("INSERT INTO app_settings (id) VALUES (1)") await conn.execute("INSERT INTO app_settings (id) VALUES (1)")
await conn.commit() await conn.commit()
from app.migrations._036_create_fanout_configs import migrate as _migrate_036_create_fanout_configs from app.migrations._036_create_fanout_configs import (
migrate as _migrate_036_create_fanout_configs,
)
await _migrate_036_create_fanout_configs(conn) await _migrate_036_create_fanout_configs(conn)
@@ -536,7 +544,9 @@ class TestMigration038:
await conn.execute("INSERT INTO app_settings (id) VALUES (1)") await conn.execute("INSERT INTO app_settings (id) VALUES (1)")
await conn.commit() await conn.commit()
from app.migrations._038_drop_legacy_columns import migrate as _migrate_038_drop_legacy_columns from app.migrations._038_drop_legacy_columns import (
migrate as _migrate_038_drop_legacy_columns,
)
await _migrate_038_drop_legacy_columns(conn) await _migrate_038_drop_legacy_columns(conn)
@@ -561,7 +571,9 @@ class TestMigration038:
await conn.execute("CREATE TABLE app_settings (id INTEGER PRIMARY KEY)") await conn.execute("CREATE TABLE app_settings (id INTEGER PRIMARY KEY)")
await conn.commit() await conn.commit()
from app.migrations._038_drop_legacy_columns import migrate as _migrate_038_drop_legacy_columns from app.migrations._038_drop_legacy_columns import (
migrate as _migrate_038_drop_legacy_columns,
)
# Should not raise # Should not raise
await _migrate_038_drop_legacy_columns(conn) await _migrate_038_drop_legacy_columns(conn)
+1 -1
View File
@@ -1,11 +1,11 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import run_migrations from app.migrations import run_migrations
class TestMigration001: class TestMigration001:
"""Test migration 001: add last_read_at columns.""" """Test migration 001: add last_read_at columns."""
+1 -1
View File
@@ -7,13 +7,13 @@ import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration013: class TestMigration013:
"""Test migration 013: convert bot_enabled/bot_code to multi-bot format.""" """Test migration 013: convert bot_enabled/bot_code to multi-bot format."""
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_migration_converts_existing_bot_to_array(self): async def test_migration_converts_existing_bot_to_array(self):
"""Migration converts existing bot_enabled/bot_code to bots array.""" """Migration converts existing bot_enabled/bot_code to bots array."""
import json
conn = await aiosqlite.connect(":memory:") conn = await aiosqlite.connect(":memory:")
conn.row_factory = aiosqlite.Row conn.row_factory = aiosqlite.Row
+1 -2
View File
@@ -1,12 +1,11 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
from hashlib import sha256
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration018: class TestMigration018:
"""Test migration 018: drop UNIQUE(data) from raw_packets.""" """Test migration 018: drop UNIQUE(data) from raw_packets."""
+1 -1
View File
@@ -1,11 +1,11 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration019: class TestMigration019:
"""Test migration 019: drop UNIQUE constraint from messages.""" """Test migration 019: drop UNIQUE constraint from messages."""
+1 -1
View File
@@ -1,11 +1,11 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration020: class TestMigration020:
"""Test migration 020: enable WAL mode and incremental auto-vacuum.""" """Test migration 020: enable WAL mode and incremental auto-vacuum."""
+1 -1
View File
@@ -7,13 +7,13 @@ import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration028: class TestMigration028:
"""Test migration 028: convert payload_hash from TEXT to BLOB.""" """Test migration 028: convert payload_hash from TEXT to BLOB."""
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_migration_converts_hex_text_to_blob(self): async def test_migration_converts_hex_text_to_blob(self):
"""Migration converts 64-char hex TEXT payload_hash values to 32-byte BLOBs.""" """Migration converts 64-char hex TEXT payload_hash values to 32-byte BLOBs."""
from hashlib import sha256
conn = await aiosqlite.connect(":memory:") conn = await aiosqlite.connect(":memory:")
conn.row_factory = aiosqlite.Row conn.row_factory = aiosqlite.Row
+1 -1
View File
@@ -1,11 +1,11 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration032: class TestMigration032:
"""Test migration 032: add community MQTT columns to app_settings.""" """Test migration 032: add community MQTT columns to app_settings."""
+1 -1
View File
@@ -1,11 +1,11 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration033: class TestMigration033:
"""Test migration 033: seed #remoteterm channel.""" """Test migration 033: seed #remoteterm channel."""
+1 -1
View File
@@ -1,11 +1,11 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration034: class TestMigration034:
"""Test migration 034: add flood_scope column to app_settings.""" """Test migration 034: add flood_scope column to app_settings."""
+1 -2
View File
@@ -1,13 +1,12 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import get_version, run_migrations, set_version from app.migrations import get_version, run_migrations, set_version
from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION
class TestMigration039: class TestMigration039:
"""Test migration 039: persist contacts.out_path_hash_mode.""" """Test migration 039: persist contacts.out_path_hash_mode."""
+1 -2
View File
@@ -1,13 +1,12 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import get_version, run_migrations, set_version from app.migrations import get_version, run_migrations, set_version
from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION
class TestMigration040: class TestMigration040:
"""Test migration 040: include path_len in advert-path identity.""" """Test migration 040: include path_len in advert-path identity."""
+1 -2
View File
@@ -1,13 +1,12 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import get_version, run_migrations, set_version from app.migrations import get_version, run_migrations, set_version
from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION
class TestMigration041: class TestMigration041:
"""Test migration 041: add nullable routing override columns.""" """Test migration 041: add nullable routing override columns."""
+1 -2
View File
@@ -1,13 +1,12 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import get_version, run_migrations, set_version from app.migrations import get_version, run_migrations, set_version
from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION
class TestMigration042: class TestMigration042:
"""Test migration 042: add channels.flood_scope_override.""" """Test migration 042: add channels.flood_scope_override."""
@@ -7,6 +7,7 @@ import pytest
from app.migrations import run_migrations, set_version from app.migrations import run_migrations, set_version
class TestMigration044: class TestMigration044:
"""Test migration 044: dedupe incoming direct messages.""" """Test migration 044: dedupe incoming direct messages."""
+1 -2
View File
@@ -1,13 +1,12 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import get_version, run_migrations, set_version from app.migrations import get_version, run_migrations, set_version
from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION
class TestMigration046: class TestMigration046:
"""Test migration 046: clean orphaned contact child rows.""" """Test migration 046: clean orphaned contact child rows."""
+1 -2
View File
@@ -1,13 +1,12 @@
"""Tests for database migration(s).""" """Tests for database migration(s)."""
import aiosqlite import aiosqlite
import pytest import pytest
from app.migrations import get_version, run_migrations, set_version from app.migrations import get_version, run_migrations, set_version
from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION from tests.test_migrations.conftest import LATEST_SCHEMA_VERSION
class TestMigration047: class TestMigration047:
"""Test migration 047: add statistics indexes.""" """Test migration 047: add statistics indexes."""