"""import_settings: the off-site backup destination (an S3 bucket). Address, bucket, access key and region are plain settings; the secret key is stored sealed with the credential key. All empty means no destination is set up, which is every existing install's state. Revision ID: 0119 Revises: 0118 Create Date: 2026-11-06 """ import sqlalchemy as sa from alembic import op revision = "0119" down_revision = "0118" branch_labels = None depends_on = None def upgrade() -> None: op.add_column("import_settings", sa.Column("backup_s3_endpoint", sa.Text(), nullable=True)) op.add_column( "import_settings", sa.Column("backup_s3_bucket", sa.String(255), nullable=True), ) op.add_column("import_settings", sa.Column("backup_s3_access_key", sa.Text(), nullable=True)) op.add_column( "import_settings", sa.Column("backup_s3_secret_sealed", sa.Text(), nullable=True), ) op.add_column( "import_settings", sa.Column( "backup_s3_region", sa.String(64), nullable=False, server_default="us-east-1", ), ) def downgrade() -> None: for column in ( "backup_s3_region", "backup_s3_secret_sealed", "backup_s3_access_key", "backup_s3_bucket", "backup_s3_endpoint", ): op.drop_column("import_settings", column)