add alembic to scaffold
This commit is contained in:
parent
cdfb81c54c
commit
005fca223f
7 changed files with 156 additions and 54 deletions
78
edbob/scaffolds/edbob/+package+/alembic/env.py_tmpl
Normal file
78
edbob/scaffolds/edbob/+package+/alembic/env.py_tmpl
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
"""
|
||||||
|
``{{package}}.alembic.env`` -- Alembic Environment Script
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import with_statement
|
||||||
|
|
||||||
|
from alembic import context
|
||||||
|
|
||||||
|
import edbob
|
||||||
|
import edbob.db
|
||||||
|
|
||||||
|
|
||||||
|
# this is the Alembic Config object, which provides
|
||||||
|
# access to the values within the .ini file in use.
|
||||||
|
config = context.config
|
||||||
|
|
||||||
|
# Initialize edbob with whichever config file alembic is using.
|
||||||
|
edbob.init('{{package}}', config.config_file_name)
|
||||||
|
|
||||||
|
# add your model's MetaData object here
|
||||||
|
# for 'autogenerate' support
|
||||||
|
target_metadata = edbob.db.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 = edbob.config.require('edbob.db', 'sqlalchemy.url')
|
||||||
|
context.configure(url=url)
|
||||||
|
|
||||||
|
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 = edbob.db.engine
|
||||||
|
|
||||||
|
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()
|
31
edbob/scaffolds/edbob/+package+/alembic/script.py.mako
Normal file
31
edbob/scaffolds/edbob/+package+/alembic/script.py.mako
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
"""${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 ""}
|
||||||
|
|
||||||
|
metadata = sa.MetaData()
|
||||||
|
|
||||||
|
active_extensions = sa.Table(
|
||||||
|
'active_extensions', metadata,
|
||||||
|
sa.Column('name', sa.String(50)),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
${upgrades if upgrades else "pass"}
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
${downgrades if downgrades else "pass"}
|
0
edbob/scaffolds/edbob/+package+/alembic/versions/.dummy
Normal file
0
edbob/scaffolds/edbob/+package+/alembic/versions/.dummy
Normal file
|
@ -19,6 +19,14 @@
|
||||||
whatever = you like
|
whatever = you like
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# edbob
|
||||||
|
####################
|
||||||
|
|
||||||
|
[edbob]
|
||||||
|
include_config = [r'%(here)s/production.ini']
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Pyramid
|
# Pyramid
|
||||||
####################
|
####################
|
||||||
|
@ -29,8 +37,7 @@ use = egg:{{package}}
|
||||||
pyramid.reload_templates = true
|
pyramid.reload_templates = true
|
||||||
pyramid.debug_all = true
|
pyramid.debug_all = true
|
||||||
pyramid.default_locale_name = en
|
pyramid.default_locale_name = en
|
||||||
pyramid.includes =
|
pyramid.includes = pyramid_debugtoolbar
|
||||||
pyramid_debugtoolbar
|
|
||||||
|
|
||||||
# Hack so edbob can find this file from within WSGI app.
|
# Hack so edbob can find this file from within WSGI app.
|
||||||
edbob.config = %(here)s/development.ini
|
edbob.config = %(here)s/development.ini
|
||||||
|
@ -41,14 +48,6 @@ host = 0.0.0.0
|
||||||
port = 6543
|
port = 6543
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
# edbob
|
|
||||||
####################
|
|
||||||
|
|
||||||
[edbob]
|
|
||||||
include_config = ['%(here)s/production.ini']
|
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# logging
|
# logging
|
||||||
####################
|
####################
|
||||||
|
|
|
@ -13,6 +13,43 @@
|
||||||
whatever = you like
|
whatever = you like
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# edbob
|
||||||
|
####################
|
||||||
|
|
||||||
|
[edbob]
|
||||||
|
init = edbob.time, edbob.errors, edbob.db
|
||||||
|
basic_logging = True
|
||||||
|
configure_logging = True
|
||||||
|
# shell.python = ipython
|
||||||
|
|
||||||
|
[edbob.db]
|
||||||
|
sqlalchemy.url = postgresql://user:pass@localhost/{{package}}
|
||||||
|
|
||||||
|
[edbob.mail]
|
||||||
|
smtp.server = localhost
|
||||||
|
# smtp.username = user
|
||||||
|
# smtp.password = pass
|
||||||
|
sender.default = {{package}}@example.com
|
||||||
|
subject.default = Message from {{project}}
|
||||||
|
recipients.default = [
|
||||||
|
'Joe Blow <owner@example.com>',
|
||||||
|
'managers@example.com',
|
||||||
|
'support@example.com',
|
||||||
|
]
|
||||||
|
|
||||||
|
[edbob.time]
|
||||||
|
zone.local = America/Chicago
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# alembic
|
||||||
|
####################
|
||||||
|
|
||||||
|
[alembic]
|
||||||
|
script_location = {{package}}:alembic
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# pyramid
|
# pyramid
|
||||||
####################
|
####################
|
||||||
|
@ -33,49 +70,6 @@ host = 0.0.0.0
|
||||||
port = 6543
|
port = 6543
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
# alembic
|
|
||||||
####################
|
|
||||||
|
|
||||||
[alembic]
|
|
||||||
# path to migration scripts
|
|
||||||
script_location = schema
|
|
||||||
|
|
||||||
# template used to generate migration files
|
|
||||||
# file_template = %%(rev)s_%%(slug)s
|
|
||||||
|
|
||||||
sqlalchemy.url = postgresql://user:pass@localhost/{{package}}
|
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
# edbob
|
|
||||||
####################
|
|
||||||
|
|
||||||
[edbob]
|
|
||||||
init = edbob.time, edbob.db
|
|
||||||
basic_logging = True
|
|
||||||
configure_logging = True
|
|
||||||
# shell.python = ipython
|
|
||||||
|
|
||||||
[edbob.db]
|
|
||||||
sqlalchemy.url = postgresql://user:pass@localhost/{{package}}
|
|
||||||
|
|
||||||
[edbob.mail]
|
|
||||||
smtp.server = localhost
|
|
||||||
# smtp.username = user
|
|
||||||
# smtp.password = pass
|
|
||||||
sender.default = {{package}}@example.com
|
|
||||||
recipients.default = [
|
|
||||||
'Joe Blow <owner@example.com>',
|
|
||||||
'managers@example.com',
|
|
||||||
'support@example.com',
|
|
||||||
]
|
|
||||||
subject.default = Message from {{project}}
|
|
||||||
|
|
||||||
[edbob.time]
|
|
||||||
timezone = US/Central
|
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# logging
|
# logging
|
||||||
####################
|
####################
|
||||||
|
|
|
@ -39,6 +39,7 @@ requires = [
|
||||||
#
|
#
|
||||||
# package # low high
|
# package # low high
|
||||||
|
|
||||||
|
'alembic', # 0.3.4
|
||||||
'edbob[db,pyramid]', # 0.1a1.dev
|
'edbob[db,pyramid]', # 0.1a1.dev
|
||||||
'psycopg2', # 2.4.4
|
'psycopg2', # 2.4.4
|
||||||
]
|
]
|
||||||
|
|
1
setup.py
1
setup.py
|
@ -93,7 +93,6 @@ extras = {
|
||||||
#
|
#
|
||||||
# package # low high
|
# package # low high
|
||||||
|
|
||||||
# 'alembic', # 0.3.4
|
|
||||||
'SQLAlchemy', # 0.7.6
|
'SQLAlchemy', # 0.7.6
|
||||||
# 'Tempita', # 0.5.1
|
# 'Tempita', # 0.5.1
|
||||||
],
|
],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue