Как выполнить вставки и обновления в скрипте обновления Alembic?

Мне нужно изменить данные во время обновления Alembic.

В настоящее время у меня есть таблица игроков в первой ревизии:

def upgrade():
    op.create_table('player',
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('name', sa.Unicode(length=200), nullable=False),
        sa.Column('position', sa.Unicode(length=200), nullable=True),
        sa.Column('team', sa.Unicode(length=100), nullable=True)
        sa.PrimaryKeyConstraint('id')
    )

Я хочу представить таблицу «команд». Я создал вторую ревизию:

def upgrade():
    op.create_table('teams',
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('name', sa.String(length=80), nullable=False)
    )
    op.add_column('players', sa.Column('team_id', sa.Integer(), nullable=False))

Я хотел бы, чтобы вторая миграция также добавила следующие данные:

Заполните таблицы команд:

INSERT INTO teams (name) SELECT DISTINCT team FROM players;

Обновите Players.team_id на основе имени Players.team:

UPDATE players AS p JOIN teams AS t SET p.team_id = t.id WHERE p.team = t.name;

Как выполнить вставки и обновления внутри скрипта обновления?

Ответы на вопрос(2)

Ваш ответ на вопрос