Alembicアップグレードスクリプトで挿入と更新を実行するにはどうすればよいですか?

| |

Alembicのアップグレード中にデータを変更する必要があります。

現在、最初のリビジョンに「players」テーブルがあります:

  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")) 

「チーム」テーブルを紹介したいと思います。 2番目のリビジョンを作成しました:

  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)) 

2回目の移行でも、次のデータを追加したいと思います。

  1. チームテーブルの作成:

      INSERT INTOチーム(名前)SELECT DISTINCT team FROMplayers;  
  2. players.team名に基づいてplayers.team_idを更新します:

     プレーヤーを更新ASpJOINチームAStSET p.team_id = t.id WHERE p.team = t.name;  

挿入を実行するにはどうすればよいですかアップグレードスクリプト内の更新?