使用Alembic执行触发器创建

我正在尝试创建以下触发器:

create_update_rating_trigger = sa.DDL(
    f'''
    CREATE FUNCTION update_rating() RETURNS TRIGGER AS $$
      BEGIN
        UPDATE "{RATING_TABLE}" SET
          {AVERAGE} = (({AVERAGE} * {VOTES}) + new.{VALUE}) / ({VOTES} + 1),{VOTES} = {VOTES} + 1
        FROM "{USER_TABLE}"
        WHERE
          "{USER_TABLE}".{USER_ID} = new.{RATED_USER_ID}
          AND "{USER_TABLE}".{USER_RATING_ID} = "{RATING_TABLE}".{RATING_ID};
        RETURN NULL;
      END;
    $$ LANGUAGE plpgsql;

    CREATE TRIGGER update_rating_trigger
    AFTER INSERT ON vote
    FOR EACH ROW
    EXECUTE PROCEDURE update_rating();
    '''
)


sa.event.listen(ratings,'after_create',create_update_rating_trigger)

我执行时的空档

alembic revision --autogenerate

它不能在迁移中创建事务性DDL。有办法吗?

fangchengkuan 回答:使用Alembic执行触发器创建

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2611459.html

大家都在问