diff --git a/MANIFEST.in b/MANIFEST.in index 017fb9bb..a3187c93 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,4 @@ include *.txt *.ini *.cfg *.rst recursive-include atramhasis *.ico *.png *.css *.gif *.jpg *.pt *.txt *.jinja2 *.js *.html *.xml graft atramhasis/scaffolds +graft atramhasis/alembic diff --git a/alembic.ini b/alembic.ini index f72fea5f..2da4fe97 100644 --- a/alembic.ini +++ b/alembic.ini @@ -2,7 +2,7 @@ [alembic] # path to migration scripts -script_location = alembic +script_location = atramhasis:alembic # template used to generate migration files # file_template = %%(rev)s_%%(slug)s @@ -20,8 +20,9 @@ script_location = alembic # versions/ directory # sourceless = false -sqlalchemy.url = sqlite:///%(here)s/atramhasis.sqlite +# sqlalchemy.url = sqlite:///%(here)s/atramhasis.sqlite +ini_location = %(here)s/development.ini # Logging configuration [loggers] diff --git a/alembic/README b/atramhasis/alembic/README similarity index 100% rename from alembic/README rename to atramhasis/alembic/README diff --git a/alembic/env.py b/atramhasis/alembic/env.py similarity index 81% rename from alembic/env.py rename to atramhasis/alembic/env.py index a979b362..57f7182c 100644 --- a/alembic/env.py +++ b/atramhasis/alembic/env.py @@ -1,10 +1,12 @@ from __future__ import with_statement +from configparser import ConfigParser from alembic import context from sqlalchemy import engine_from_config, pool from logging.config import fileConfig from atramhasis.models import Base from skosprovider_sqlalchemy.models import Base as SkosBase from sqlalchemy.schema import MetaData +from os import path # this is the Alembic Config object, which provides # access to the values within the .ini file in use. @@ -25,6 +27,19 @@ # my_important_option = config.get_main_option("my_important_option") # ... etc. +def load_app_ini(ini_file): + """Load the settings for the application.ini file.""" + ini = ConfigParser() + ini.read_file(open(ini_file)) + here = path.abspath(path.dirname(ini_file)) + ini.set('app:main', 'here', here) + return ini + +app_ini = config.get_main_option('ini_location') +app_config = load_app_ini(app_ini) +sa_url = app_config.get('app:main', 'sqlalchemy.url') +config.set_main_option('sqlalchemy.url', sa_url) + def run_migrations_offline(): """Run migrations in 'offline' mode. diff --git a/alembic/script.py.mako b/atramhasis/alembic/script.py.mako similarity index 100% rename from alembic/script.py.mako rename to atramhasis/alembic/script.py.mako diff --git a/alembic/versions/3924a7ad2f8_init.py b/atramhasis/alembic/versions/3924a7ad2f8_init.py similarity index 100% rename from alembic/versions/3924a7ad2f8_init.py rename to atramhasis/alembic/versions/3924a7ad2f8_init.py diff --git a/atramhasis/scaffolds/atramhasis_demo/alembic.ini b/atramhasis/scaffolds/atramhasis_demo/alembic.ini new file mode 100644 index 00000000..2da4fe97 --- /dev/null +++ b/atramhasis/scaffolds/atramhasis_demo/alembic.ini @@ -0,0 +1,60 @@ +# A generic, single database configuration. + +[alembic] +# path to migration scripts +script_location = atramhasis: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 = sqlite:///%(here)s/atramhasis.sqlite + +ini_location = %(here)s/development.ini + +# 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/atramhasis/scaffolds/atramhasis_demo/atramhasis.sqlite b/atramhasis/scaffolds/atramhasis_demo/atramhasis.sqlite deleted file mode 100644 index cc790461..00000000 Binary files a/atramhasis/scaffolds/atramhasis_demo/atramhasis.sqlite and /dev/null differ diff --git a/atramhasis/scaffolds/atramhasis_demo/development.ini_tmpl b/atramhasis/scaffolds/atramhasis_demo/development.ini_tmpl index ec1e9512..dd0c5739 100644 --- a/atramhasis/scaffolds/atramhasis_demo/development.ini_tmpl +++ b/atramhasis/scaffolds/atramhasis_demo/development.ini_tmpl @@ -15,7 +15,7 @@ pyramid.includes = pyramid_debugtoolbar pyramid_tm -sqlalchemy.url = sqlite:///%(here)s/atramhasis.sqlite +sqlalchemy.url = sqlite:///%(here)s/{{package}}.sqlite # By default, the toolbar only appears for clients from IP addresses # '127.0.0.1' and '::1'. diff --git a/atramhasis/scaffolds/atramhasis_scaffold/alembic.ini b/atramhasis/scaffolds/atramhasis_scaffold/alembic.ini new file mode 100644 index 00000000..2da4fe97 --- /dev/null +++ b/atramhasis/scaffolds/atramhasis_scaffold/alembic.ini @@ -0,0 +1,60 @@ +# A generic, single database configuration. + +[alembic] +# path to migration scripts +script_location = atramhasis: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 = sqlite:///%(here)s/atramhasis.sqlite + +ini_location = %(here)s/development.ini + +# 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/atramhasis/scaffolds/atramhasis_scaffold/atramhasis.sqlite b/atramhasis/scaffolds/atramhasis_scaffold/atramhasis.sqlite deleted file mode 100644 index cc790461..00000000 Binary files a/atramhasis/scaffolds/atramhasis_scaffold/atramhasis.sqlite and /dev/null differ diff --git a/atramhasis/scaffolds/atramhasis_scaffold/development.ini_tmpl b/atramhasis/scaffolds/atramhasis_scaffold/development.ini_tmpl index ec1e9512..dd0c5739 100644 --- a/atramhasis/scaffolds/atramhasis_scaffold/development.ini_tmpl +++ b/atramhasis/scaffolds/atramhasis_scaffold/development.ini_tmpl @@ -15,7 +15,7 @@ pyramid.includes = pyramid_debugtoolbar pyramid_tm -sqlalchemy.url = sqlite:///%(here)s/atramhasis.sqlite +sqlalchemy.url = sqlite:///%(here)s/{{package}}.sqlite # By default, the toolbar only appears for clients from IP addresses # '127.0.0.1' and '::1'.