~edwargix/git.sr.ht

a9288d2479dbc1c754462769e4a3c249be0a0ba8 — Drew DeVault 8 years ago d3f26af
Add alembic
A gitsrht/alembic/README => gitsrht/alembic/README +1 -0
@@ 0,0 1,1 @@
Generic single-database configuration.
\ No newline at end of file

A gitsrht/alembic/env.py => gitsrht/alembic/env.py +73 -0
@@ 0,0 1,73 @@
from __future__ import with_statement
import os, sys
sys.path.append(os.getcwd())
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.
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 gitsrht.app import app, db
from srht.database import Base
target_metadata = Base.metadata

# 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.

    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.

    """
    url = config.get_main_option("sqlalchemy.url")
    context.configure(url=url, target_metadata=target_metadata)

    with context.begin_transaction():
        context.run_migrations()

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.

    """
    engine = engine_from_config(
                config.get_section(config.config_ini_section),
                prefix='sqlalchemy.',
                poolclass=pool.NullPool)

    connection = engine.connect()
    context.configure(
                connection=connection,
                target_metadata=target_metadata
                )

    try:
        with context.begin_transaction():
            context.run_migrations()
    finally:
        connection.close()

if context.is_offline_mode():
    run_migrations_offline()
else:
    run_migrations_online()


A gitsrht/alembic/script.py.mako => gitsrht/alembic/script.py.mako +22 -0
@@ 0,0 1,22 @@
"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision}
Create Date: ${create_date}

"""

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}

from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

def upgrade():
    ${upgrades if upgrades else "pass"}


def downgrade():
    ${downgrades if downgrades else "pass"}

A gitsrht/alembic/versions/125cf4a92c42_add_oauth_scopes_column.py => gitsrht/alembic/versions/125cf4a92c42_add_oauth_scopes_column.py +26 -0
@@ 0,0 1,26 @@
"""Add oauth scopes column

Revision ID: 125cf4a92c42
Revises: 29da022b74a8
Create Date: 2017-04-16 11:33:52.288486

"""

# revision identifiers, used by Alembic.
revision = '125cf4a92c42'
down_revision = '29da022b74a8'

from alembic import op
import sqlalchemy as sa


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('user', sa.Column('oauth_token_scopes', sa.String(), nullable=False, server_default=''))
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column('user', 'oauth_token_scopes')
    # ### end Alembic commands ###

A gitsrht/alembic/versions/29da022b74a8_initial_revision.py => gitsrht/alembic/versions/29da022b74a8_initial_revision.py +22 -0
@@ 0,0 1,22 @@
"""Initial revision

Revision ID: 29da022b74a8
Revises: None
Create Date: 2017-04-16 11:33:31.278553

"""

# revision identifiers, used by Alembic.
revision = '29da022b74a8'
down_revision = None

from alembic import op
import sqlalchemy as sa


def upgrade():
    pass


def downgrade():
    pass

M setup.py => setup.py +2 -0
@@ 15,6 15,8 @@ setup(
      'gitsrht',
      'gitsrht.types',
      'gitsrht.blueprints',
      'gitsrht.alembic',
      'gitsrht.alembic.versions'
  ],
  version = ver,
  description = 'git.sr.ht website',