summaryrefslogtreecommitdiff
path: root/docs/tutorials/wiki2/src
diff options
context:
space:
mode:
authorSteve Piercy <web@stevepiercy.com>2018-06-28 01:46:42 -0700
committerSteve Piercy <web@stevepiercy.com>2018-06-28 01:46:42 -0700
commit0fa7506987e2a8d1fa68ab307ef325de5fb137ec (patch)
tree8624f1a4d1c249368dc13d9bc3d6e58a2195001a /docs/tutorials/wiki2/src
parent03fc543e74029978dc38eb0765f24bfe40adbc50 (diff)
downloadpyramid-0fa7506987e2a8d1fa68ab307ef325de5fb137ec.tar.gz
pyramid-0fa7506987e2a8d1fa68ab307ef325de5fb137ec.tar.bz2
pyramid-0fa7506987e2a8d1fa68ab307ef325de5fb137ec.zip
First stab at updated db script
Diffstat (limited to 'docs/tutorials/wiki2/src')
-rw-r--r--docs/tutorials/wiki2/src/models/tutorial/scripts/initialize_db.py77
1 files changed, 38 insertions, 39 deletions
diff --git a/docs/tutorials/wiki2/src/models/tutorial/scripts/initialize_db.py b/docs/tutorials/wiki2/src/models/tutorial/scripts/initialize_db.py
index f3c0a6fef..af4c625ae 100644
--- a/docs/tutorials/wiki2/src/models/tutorial/scripts/initialize_db.py
+++ b/docs/tutorials/wiki2/src/models/tutorial/scripts/initialize_db.py
@@ -1,57 +1,56 @@
import os
import sys
-import transaction
-from pyramid.paster import (
- get_appsettings,
- setup_logging,
- )
+from pyramid.paster import bootstrap, setup_logging
+from sqlalchemy.exc import OperationalError
+
+from ..models import Page, User
-from pyramid.scripts.common import parse_vars
-from ..models.meta import Base
-from ..models import (
- get_engine,
- get_session_factory,
- get_tm_session,
+def setup_models(dbsession):
+ editor = User(name='editor', role='editor')
+ editor.set_password('editor')
+ dbsession.add(editor)
+
+ basic = User(name='basic', role='basic')
+ basic.set_password('basic')
+ dbsession.add(basic)
+
+ page = Page(
+ name='FrontPage',
+ creator=editor,
+ data='This is the front page',
)
-from ..models import Page, User
+ dbsession.add(page)
def usage(argv):
cmd = os.path.basename(argv[0])
- print('usage: %s <config_uri> [var=value]\n'
+ print('usage: %s <config_uri>\n'
'(example: "%s development.ini")' % (cmd, cmd))
sys.exit(1)
def main(argv=sys.argv):
- if len(argv) < 2:
+ if len(argv) != 2:
usage(argv)
config_uri = argv[1]
- options = parse_vars(argv[2:])
setup_logging(config_uri)
- settings = get_appsettings(config_uri, options=options)
-
- engine = get_engine(settings)
- Base.metadata.create_all(engine)
-
- session_factory = get_session_factory(engine)
-
- with transaction.manager:
- dbsession = get_tm_session(session_factory, transaction.manager)
-
- editor = User(name='editor', role='editor')
- editor.set_password('editor')
- dbsession.add(editor)
-
- basic = User(name='basic', role='basic')
- basic.set_password('basic')
- dbsession.add(basic)
-
- page = Page(
- name='FrontPage',
- creator=editor,
- data='This is the front page',
- )
- dbsession.add(page)
+ env = bootstrap(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.
+ ''')