diff --git a/kallithea/alembic/env.py b/kallithea/alembic/env.py --- a/kallithea/alembic/env.py +++ b/kallithea/alembic/env.py @@ -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 . + +# 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: diff --git a/kallithea/alembic/script.py.mako b/kallithea/alembic/script.py.mako --- a/kallithea/alembic/script.py.mako +++ b/kallithea/alembic/script.py.mako @@ -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 . + +## 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)}