diff --git a/alembic.ini.example b/alembic.ini.example deleted file mode 100644 index 13fb9a6..0000000 --- a/alembic.ini.example +++ /dev/null @@ -1,59 +0,0 @@ -# A generic, single database configuration. - -[alembic] -# path to migration scripts -script_location = metasrht/alembic - -# template used to generate migration files -# file_template = %%(rev)s_%%(slug)s - -# max length of characters to apply to the -# "slug" field -#truncate_slug_length = 40 - -# set to 'true' to run the environment during -# the 'revision' command, regardless of autogenerate -# revision_environment = false - -# set to 'true' to allow .pyc and .pyo files without -# a source .py file to be detected as revisions in the -# versions/ directory -# sourceless = false - -sqlalchemy.url = postgres://postgres@localhost/meta.sr.ht - - -# Logging configuration -[loggers] -keys = root,sqlalchemy,alembic - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S diff --git a/metasrht-migrate b/metasrht-migrate new file mode 100755 index 0000000..461ad0d --- /dev/null +++ b/metasrht-migrate @@ -0,0 +1,5 @@ +#!/usr/bin/env python3 +import metasrht.alembic +from srht.config import cfg +from srht.database import alembic +alembic("meta.sr.ht", metasrht.alembic) diff --git a/metasrht/alembic/env.py b/metasrht/alembic/env.py index 0190e8e..51d57c8 100644 --- a/metasrht/alembic/env.py +++ b/metasrht/alembic/env.py @@ -1,73 +1,3 @@ -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 metasrht.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() - +import metasrht.types +from srht.database import alembic_env +alembic_env() diff --git a/setup.py b/setup.py index fdefb27..759ca43 100755 --- a/setup.py +++ b/setup.py @@ -76,5 +76,6 @@ setup( scripts = [ 'meta-srht-daily', 'metasrht-daily', + 'metasrht-migrate', ] )