codekingpro/portable-devtools
114k
1<%!2import re3 4%>"""${message}5 6Revision ID: ${up_revision}7Revises: ${down_revision | comma,n}8Create Date: ${create_date}9 10"""11from typing import Sequence, Union12 13from alembic import op14import sqlalchemy as sa15${imports if imports else ""}16 17# revision identifiers, used by Alembic.18revision: str = ${repr(up_revision)}19down_revision: Union[str, None] = ${repr(down_revision)}20branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)}21depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)}22 23 24def upgrade(engine_name: str) -> None:25 globals()["upgrade_%s" % engine_name]()26 27 28def downgrade(engine_name: str) -> None:29 globals()["downgrade_%s" % engine_name]()30 31<%32 db_names = config.get_main_option("databases")33%>34 35## generate an "upgrade_<xyz>() / downgrade_<xyz>()" function36## for each database name in the ini file.37 38% for db_name in re.split(r',\s*', db_names):39 40def upgrade_${db_name}() -> None:41 ${context.get("%s_upgrades" % db_name, "pass")}42 43 44def downgrade_${db_name}() -> None:45 ${context.get("%s_downgrades" % db_name, "pass")}46 47% endfor48 