changeset 6018:520d39490a06

db: tweak Alembic migration environment Add comments about the license and purpose of these files, and align env.py with the Kallithea code style.
author Søren Løvborg <sorenl@unity3d.com>
date Mon, 04 Jul 2016 17:18:49 +0200
parents 7894a440e134
children ccc66ed2f85b
files kallithea/alembic/env.py kallithea/alembic/script.py.mako
diffstat 2 files changed, 46 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/alembic/env.py	Thu Jun 02 13:21:59 2016 +0200
+++ b/kallithea/alembic/env.py	Mon Jul 04 17:18:49 2016 +0200
@@ -1,43 +1,44 @@
-from __future__ import with_statement
+# -*- coding: utf-8 -*-
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Alembic migration environment (configuration).
+
+from logging.config import fileConfig
+
 from alembic import context
 from sqlalchemy import engine_from_config, pool
-from logging.config import fileConfig
+
 
-# this is the Alembic Config object, which provides
-# access to the values within the .ini file in use.
+# The alembic.config.Config object, which wraps the current .ini file.
 config = context.config
 
 # Interpret the config file for Python logging.
 # This line sets up loggers basically.
 fileConfig(config.config_file_name)
 
-# add your model's MetaData object here
-# for 'autogenerate' support
-# from myapp import mymodel
-# target_metadata = mymodel.Base.metadata
-target_metadata = None
-
-# other values from the config, defined by the needs of env.py,
-# can be acquired:
-# my_important_option = config.get_main_option("my_important_option")
-# ... etc.
-
 
 def run_migrations_offline():
-    """Run migrations in 'offline' mode.
+    """Run migrations in 'offline' (--sql) mode.
 
-    This configures the context with just a URL
-    and not an Engine, though an Engine is acceptable
-    here as well.  By skipping the Engine creation
-    we don't even need a DBAPI to be available.
-
-    Calls to context.execute() here emit the given string to the
-    script output.
-
+    This produces an SQL script instead of directly applying the changes.
+    Some migrations may not run in offline mode.
     """
     url = config.get_main_option("sqlalchemy.url")
     context.configure(
-        url=url, target_metadata=target_metadata, literal_binds=True)
+        url=url,
+        literal_binds=True,
+    )
 
     with context.begin_transaction():
         context.run_migrations()
@@ -46,9 +47,8 @@
 def run_migrations_online():
     """Run migrations in 'online' mode.
 
-    In this scenario we need to create an Engine
-    and associate a connection with the context.
-
+    Connects to the database and directly applies the necessary
+    migrations.
     """
     connectable = engine_from_config(
         config.get_section(config.config_ini_section),
@@ -58,12 +58,12 @@
     with connectable.connect() as connection:
         context.configure(
             connection=connection,
-            target_metadata=target_metadata
         )
 
         with context.begin_transaction():
             context.run_migrations()
 
+
 if context.is_offline_mode():
     run_migrations_offline()
 else:
--- a/kallithea/alembic/script.py.mako	Thu Jun 02 13:21:59 2016 +0200
+++ b/kallithea/alembic/script.py.mako	Mon Jul 04 17:18:49 2016 +0200
@@ -1,3 +1,18 @@
+# -*- coding: utf-8 -*-
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+## Template for creating new Alembic migration scripts.
 """${message}
 
 Revision ID: ${up_revision}
@@ -6,7 +21,8 @@
 
 """
 
-# revision identifiers, used by Alembic.
+# The following opaque hexadecimal identifiers ("revisions") are used
+# by Alembic to track this migration script and its relations to others.
 revision = ${repr(up_revision)}
 down_revision = ${repr(down_revision)}
 branch_labels = ${repr(branch_labels)}