]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
Updated the 'revision' command to pass the current Alembic config to the script templ...
authorBryce Lohr <bryce.lohr@gmail.com>
Fri, 27 Apr 2012 04:47:14 +0000 (00:47 -0400)
committerBryce Lohr <bryce.lohr@gmail.com>
Fri, 27 Apr 2012 04:47:14 +0000 (00:47 -0400)
alembic/command.py
alembic/templates/multidb/script.py.mako

index ed7b8302cb68c46789641a61860dbbf3bb7ee1e8..67b0d668bac736dce1e966e00d5c5177ade33f6e 100644 (file)
@@ -63,7 +63,9 @@ def revision(config, message=None, autogenerate=False):
     """Create a new revision file."""
 
     script = ScriptDirectory.from_config(config)
-    template_args = {}
+    template_args = {
+        'config': config # Let templates use config for e.g. multiple databases
+    }
     imports = set()
     if autogenerate:
         util.requires_07("autogenerate")
index 7aef96f77e44eb2357bea3e2569ff61c42a0c5a2..582492bb7f99e5427922c77222353a2fd699ab81 100644 (file)
@@ -1,4 +1,7 @@
-"""${message}
+<%!
+import re
+
+%>"""${message}
 
 Revision ID: ${up_revision}
 Revises: ${down_revision}
@@ -21,14 +24,17 @@ def upgrade(engine_name):
 def downgrade(engine_name):
     eval("downgrade_%s" % engine_name)()
 
+<%
+    db_names = context.get("config").get_main_option("databases")
+%>
 
-% for engine in ["engine1", "engine2"]:
+% for db_name in re.split(r',\s*', db_names):
 
-def upgrade_${engine}():
-    ${context.get("%s_upgrades" % engine, "pass")}
+def upgrade_${db_name}():
+    ${context.get("%s_upgrades" % db_name, "pass")}
 
 
-def downgrade_${engine}():
-    ${context.get("%s_downgrades" % engine, "pass")}
+def downgrade_${db_name}():
+    ${context.get("%s_downgrades" % db_name, "pass")}
 
 % endfor