解析一列的内容,并使用flask和flask migrate将结果插入另一列
我必须从数据库中的一列中获取内容,解析它,添加新列,并将第一步的结果插入到这个新列中。在此之后,应删除“源列”。问题是我不知道如何执行这样的操作,同时保持迁移例程。我的意思是,如果有人建立一个数据库,迁移应该一个接一个地通过,包括这个“奇怪”的迁移 我的第一个想法是编辑迁移文件,并在创建新列和删除旧列之间执行一些脚本,以便在删除旧列之前填充新列解析一列的内容,并使用flask和flask migrate将结果插入另一列,flask,migration,Flask,Migration,我必须从数据库中的一列中获取内容,解析它,添加新列,并将第一步的结果插入到这个新列中。在此之后,应删除“源列”。问题是我不知道如何执行这样的操作,同时保持迁移例程。我的意思是,如果有人建立一个数据库,迁移应该一个接一个地通过,包括这个“奇怪”的迁移 我的第一个想法是编辑迁移文件,并在创建新列和删除旧列之间执行一些脚本,以便在删除旧列之前填充新列 def upgrade(): # ### commands auto generated by Alembic - please adjust
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('requests', sa.Column('payload', sa.Text(), nullable=True))
move_requests_to_payload() # ???
op.drop_column('requests', 'get_url')
op.drop_column('requests', 'portal')
# ### end Alembic commands ###
像上面这个。
你们知道怎么做吗?好吧,也许有人会用这个答案
op.add_column()
方法创建了新的列,此时我能够使用sqlalchemy ORMdef upgrade():
# ### commands auto generated by Alembic - please adjust! ###
conn = op.get_bind()
session = orm.Session(bind=conn) # it will be used later to update my db
res = conn.execute('select id, get_url, collection_identifier from requests')
results = res.fetchall() # this one fetch data from db
get_urls = [{'id':r[0],'get':r[1]} for r in results] # this one parse response to list of dicitonaries