ฉันต้องการแก้ไขข้อมูลระหว่างการอัพเกรด 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;
- อัปเดต player.team_id ตามชื่อผู้เล่นทีม: - UPDATE players AS p JOIN teams AS t SET p.team_id = t.id WHERE p.team = t.name;
ฉันจะดำเนินการแทรกและอัพเดตภายในสคริปต์อัพเกรดได้อย่างไร?
op.executeในupgrade()จะมีวิธีที่จะให้แม่แบบเริ่มต้นที่จะใช้โดยalembic revisionคำสั่ง (ร่างกายเริ่มต้นสำหรับการสร้าง.pyไฟล์)?