You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
48 lines
1.2 KiB
import argparse |
|
import sys |
|
|
|
from pyramid.paster import bootstrap, setup_logging |
|
from sqlalchemy.exc import OperationalError |
|
|
|
from .. import models |
|
|
|
|
|
def setup_models(dbsession): |
|
""" |
|
Add or update models / fixtures in the database. |
|
|
|
""" |
|
model = models.mymodel.MyModel(name='one', value=1) |
|
dbsession.add(model) |
|
|
|
|
|
def parse_args(argv): |
|
parser = argparse.ArgumentParser() |
|
parser.add_argument( |
|
'config_uri', |
|
help='Configuration file, e.g., development.ini', |
|
) |
|
return parser.parse_args(argv[1:]) |
|
|
|
|
|
def main(argv=sys.argv): |
|
args = parse_args(argv) |
|
setup_logging(args.config_uri) |
|
env = bootstrap(args.config_uri) |
|
|
|
try: |
|
with env['request'].tm: |
|
dbsession = env['request'].dbsession |
|
setup_models(dbsession) |
|
except OperationalError: |
|
print(''' |
|
Pyramid is having a problem using your SQL database. The problem |
|
might be caused by one of the following things: |
|
|
|
1. You may need to initialize your database tables with `alembic`. |
|
Check your README.txt for description and try to run it. |
|
|
|
2. Your database server may not be running. Check that the |
|
database server referred to by the "sqlalchemy.url" setting in |
|
your "development.ini" file is running. |
|
''')
|
|
|