summaryrefslogtreecommitdiffstats
path: root/api/migrations/versions/f1993296be9e_.py
blob: ac8e69ab58276636a11e7bd5a7bb61bd6a294ee4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"""Flask-Security fs_uniquifier migration

Revision ID: f1993296be9e
Revises: f537ac7a67d6
Create Date: 2021-02-25 10:50:29.973424

"""

# revision identifiers, used by Alembic.
revision = "f1993296be9e"
down_revision = "f537ac7a67d6"

from alembic import op  # noqa: E402
import sqlalchemy as sa  # noqa: E402
import uuid  # noqa: E402


def upgrade():
    op.add_column("user", sa.Column("fs_uniquifier", sa.String(length=255), nullable=True))
    user_table = sa.Table(
        "user", sa.MetaData(), sa.Column("id", sa.Integer, primary_key=True), sa.Column("fs_uniquifier", sa.String)
    )
    conn = op.get_bind()
    for row in conn.execute(sa.select([user_table.c.id])):
        conn.execute(user_table.update().values(fs_uniquifier=uuid.uuid4().hex).where(user_table.c.id == row["id"]))
    op.alter_column("user", "fs_uniquifier", nullable=False)

    op.create_unique_constraint(None, "user", ["fs_uniquifier"])


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint(None, "user", type_="unique")
    op.drop_column("user", "fs_uniquifier")
    # ### end Alembic commands ###