"""a stored site_name of the old default follows the rename to Inkwell Revision ID: 0030 Revises: 0029 Create Date: 2026-10-06 The app was renamed from ThoughtSync to Inkwell. The Settings page saves every key, so most servers have a stored `site_name` of the old default without anyone choosing it. The row is rewritten only when it holds exactly that; a typed name is left alone. The match is on the stored JSON text (`settings.value` is `json.dumps(value)`), so `'"ThoughtSync"'` is the whole of what it looks for. ## Downgrade Puts the old default back on a row holding exactly the new one. A server where the admin typed "Inkwell" themselves between the two cannot be told apart from one this migration rewrote; on downgrade both read "ThoughtSync", which is what the old code would have shown for either. """ from alembic import op import sqlalchemy as sa revision = "0030" down_revision = "0029" branch_labels = None depends_on = None _OLD = '"ThoughtSync"' _NEW = '"Inkwell"' def _swap(old: str, new: str) -> None: op.get_bind().execute( sa.text("UPDATE settings SET value = :new WHERE key = 'site_name' AND value = :old"), {"old": old, "new": new}, ) def upgrade() -> None: _swap(_OLD, _NEW) def downgrade() -> None: _swap(_NEW, _OLD)