Migrating from alembic_utils

If you’re coming from alembic_utils, you can pass your existing PGFunction / PGTrigger objects directly. Any object with a to_sql_statement_create() method is accepted alongside plain DDL strings:

from alembic_utils.pg_function import PGFunction

my_func = PGFunction(schema="public", signature="my_func()", definition="...")

PG_FUNCTIONS = [
    my_func,  # alembic_utils object, works as-is
    "CREATE FUNCTION new_func() ...",  # plain DDL string, also works
]

This lets you migrate incrementally without rewriting all your declarations at once.