Mercurial > kallithea
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)}