Michael Merickel
2018-10-15 81576ee51564c49d5ff3c1c07f214f22a8438231
commit | author | age
5edd54 1 import os
CM 2 import sys
3 import transaction
4
5 from pyramid.paster import (
6     get_appsettings,
7     setup_logging,
8     )
9
969570 10 from pyramid.scripts.common import parse_vars
GD 11
9b8398 12 from ..models.meta import Base
67f733 13 from ..models import (
414b67 14     get_engine,
f4e1ca 15     get_session_factory,
a6d08e 16     get_tm_session,
5edd54 17     )
13846e 18 from ..models import MyModel
5edd54 19
877eeb 20
5edd54 21 def usage(argv):
CM 22     cmd = os.path.basename(argv[0])
969570 23     print('usage: %s <config_uri> [var=value]\n'
877eeb 24           '(example: "%s development.ini")' % (cmd, cmd))
5edd54 25     sys.exit(1)
CM 26
877eeb 27
5edd54 28 def main(argv=sys.argv):
969570 29     if len(argv) < 2:
5edd54 30         usage(argv)
CM 31     config_uri = argv[1]
969570 32     options = parse_vars(argv[2:])
5edd54 33     setup_logging(config_uri)
969570 34     settings = get_appsettings(config_uri, options=options)
414b67 35
MM 36     engine = get_engine(settings)
5edd54 37     Base.metadata.create_all(engine)
414b67 38
f4e1ca 39     session_factory = get_session_factory(engine)
13846e 40
5edd54 41     with transaction.manager:
f4e1ca 42         dbsession = get_tm_session(session_factory, transaction.manager)
a6d08e 43
5edd54 44         model = MyModel(name='one', value=1)
414b67 45         dbsession.add(model)