Changeset - 520d39490a06
[Not reviewed]
default
0 2 0
Søren Løvborg - 9 years ago 2016-07-04 17:18:49
sorenl@unity3d.com
db: tweak Alembic migration environment

Add comments about the license and purpose of these files, and align
env.py with the Kallithea code style.
2 files changed with 46 insertions and 30 deletions:
0 comments (0 inline, 0 general)
kallithea/alembic/env.py
Show inline comments
 
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_offline():
 
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 @@ def run_migrations_online():
 
    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:
kallithea/alembic/script.py.mako
Show inline comments
 
# -*- 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 @@ Create Date: ${create_date}
 

	
 
"""
 

	
 
# 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)}
0 comments (0 inline, 0 general)