script.py.mako 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <%!
  2. import re
  3. %>"""${message}
  4. Revision ID: ${up_revision}
  5. Revises: ${down_revision | comma,n}
  6. Create Date: ${create_date}
  7. """
  8. from alembic import op
  9. import sqlalchemy as sa
  10. ${imports if imports else ""}
  11. # revision identifiers, used by Alembic.
  12. revision = ${repr(up_revision)}
  13. down_revision = ${repr(down_revision)}
  14. branch_labels = ${repr(branch_labels)}
  15. depends_on = ${repr(depends_on)}
  16. def upgrade(engine_name):
  17. globals()["upgrade_%s" % engine_name]()
  18. def downgrade(engine_name):
  19. globals()["downgrade_%s" % engine_name]()
  20. <%
  21. from flask import current_app
  22. bind_names = []
  23. if current_app.config.get('SQLALCHEMY_BINDS') is not None:
  24. bind_names = list(current_app.config['SQLALCHEMY_BINDS'].keys())
  25. else:
  26. get_bind_names = getattr(current_app.extensions['migrate'].db, 'bind_names', None)
  27. if get_bind_names:
  28. bind_names = get_bind_names()
  29. db_names = [''] + bind_names
  30. %>
  31. ## generate an "upgrade_<xyz>() / downgrade_<xyz>()" function
  32. ## for each database name in the ini file.
  33. % for db_name in db_names:
  34. def upgrade_${db_name}():
  35. ${context.get("%s_upgrades" % db_name, "pass")}
  36. def downgrade_${db_name}():
  37. ${context.get("%s_downgrades" % db_name, "pass")}
  38. % endfor