env   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 74
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 31
dl 0
loc 74
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A run_migrations_offline() 0 17 2
A run_migrations_online() 0 23 2
1
from __future__ import with_statement
2
from alembic import context
3
from sqlalchemy import engine_from_config, pool
4
from logging.config import fileConfig
5
6
# this is the Alembic Config object, which provides
7
# access to the values within the .ini file in use.
8
config = context.config
9
10
# Interpret the config file for Python logging.
11
# This line sets up loggers basically.
12
fileConfig(config.config_file_name)
13
14
# add your model's MetaData object here
15
# for 'autogenerate' support
16
# from myapp import mymodel
17
# target_metadata = mymodel.Base.metadata
18
from flask import current_app
19
config.set_main_option('sqlalchemy.url', current_app.config.get('SQLALCHEMY_DATABASE_URI'))
20
target_metadata = current_app.extensions['migrate'].db.metadata
21
22
# other values from the config, defined by the needs of env.py,
23
# can be acquired:
24
# my_important_option = config.get_main_option("my_important_option")
25
# ... etc.
26
27
def run_migrations_offline():
28
    """Run migrations in 'offline' mode.
29
30
    This configures the context with just a URL
31
    and not an Engine, though an Engine is acceptable
32
    here as well.  By skipping the Engine creation
33
    we don't even need a DBAPI to be available.
34
35
    Calls to context.execute() here emit the given string to the
36
    script output.
37
38
    """
39
    url = config.get_main_option("sqlalchemy.url")
40
    context.configure(url=url)
41
42
    with context.begin_transaction():
43
        context.run_migrations()
44
45
46
def run_migrations_online():
47
    """Run migrations in 'online' mode.
48
49
    In this scenario we need to create an Engine
50
    and associate a connection with the context.
51
52
    """
53
    engine = engine_from_config(
54
                config.get_section(config.config_ini_section),
55
                prefix='sqlalchemy.',
56
                poolclass=pool.NullPool)
57
58
    connection = engine.connect()
59
    context.configure(
60
                connection=connection,
61
                target_metadata=target_metadata
62
                )
63
64
    try:
65
        with context.begin_transaction():
66
            context.run_migrations()
67
    finally:
68
        connection.close()
69
70
if context.is_offline_mode():
71
    run_migrations_offline()
72
else:
73
    run_migrations_online()
74