我目前有一列包含 HTML 标记。在该标记中,有一个我想存储在新列中的时间戳(以便我可以查询它)。我的想法是在一次迁移中执行以下操作:
- 为数据创建一个可以为空的新列
- 使用 ORM 拉回我需要解析的 HTML
- 对于每一行
- 解析 HTML 以提取时间戳
- 更新 ORM 对象
但是当我尝试运行迁移时,它似乎陷入了无限循环。这是我到目前为止所得到的:
def _extract_publication_date(html):
root = html5lib.parse(html, treebuilder='lxml', namespaceHTMLElements=False)
publication_date_string = root.xpath("//a/@data-datetime")[0]
return parse_date(publication_date)
def _update_tip(tip):
tip.publication_date = _extract_publication_date(tip.rendered_html)
tip.save()
def upgrade():
op.add_column('tip', sa.Column('publication_date', sa.DateTime(timezone=True)))
tips = Tip.query.all()
map(tips, _update_tip)
def downgrade():
op.drop_column('tip', 'publication_date')