| 12345678910111213141516171819202122232425262728 |
- import sqlalchemy as sa
- from alembic import op
- from sqlalchemy.dialects.mysql import BINARY
- revision = "0027_standard_webhooks"
- down_revision = "0026_business_poll"
- branch_labels = None
- depends_on = None
- def upgrade():
- # 现有密钥保留原协议;Standard Webhooks 独立登记密钥,摘要唯一约束禁止跨绑定复用。
- op.add_column("channel_keys", sa.Column(
- "protocol", sa.String(32), nullable=False, server_default="zhifu-hmac"))
- op.alter_column("channel_keys", "protocol", existing_type=sa.String(32), server_default=None)
- op.add_column("channel_keys", sa.Column("credential_fingerprint", BINARY(32), nullable=True))
- op.create_check_constraint(
- "protocol", "channel_keys",
- "protocol IN ('zhifu-hmac','standard-webhooks')")
- op.create_unique_constraint(
- "uq_channel_keys_standard_secret", "channel_keys", ["credential_fingerprint"])
- def downgrade():
- op.drop_constraint("uq_channel_keys_standard_secret", "channel_keys", type_="unique")
- op.drop_constraint(op.f("ck_channel_keys_protocol"), "channel_keys", type_="check")
- op.drop_column("channel_keys", "credential_fingerprint")
- op.drop_column("channel_keys", "protocol")
|