diff --git a/development.ini b/development.ini index 2b36b66..cb71a5d 100644 --- a/development.ini +++ b/development.ini @@ -38,6 +38,7 @@ session.samesite = None ### app.root_domain = blanka.foxhop.net +app.root_domain_owner_email = russell.ballestrini@gmail.com app.root_url = http://blanka.foxhop.net:6501 # TODO: these values should be moved to environment variables & we should create an diff --git a/make_post_sell/scripts/initialize_db.py b/make_post_sell/scripts/initialize_db.py index 1bc3a90..ab35f7e 100644 --- a/make_post_sell/scripts/initialize_db.py +++ b/make_post_sell/scripts/initialize_db.py @@ -5,15 +5,40 @@ from pyramid.paster import bootstrap, get_appsettings, setup_logging from sqlalchemy.exc import OperationalError from .. import models +from ..models.user import get_or_create_user_by_email +from ..models import Shop -def setup_models(dbsession): +def setup_models(dbsession, settings): """ Add or update models / fixtures in the database. """ # model = models.mymodel.MyModel(name='one', value=1) # dbsession.add(model) + root_domain_shop = Shop( + settings["app.root_domain"], + "000-000-0000", + "none", + "Reserved shop for SaaS root domain." + ) + root_domain_shop.domain_name = settings["app.root_domain"] + + dbsession.add(root_domain_shop) + dbsession.flush() + + root_domain_owner = get_or_create_user_by_email( + dbsession, + settings["app.root_domain_owner_email"] + ) + + dbsession.add(root_domain_owner) + dbsession.flush() + + us = root_domain_shop.add_user_to_shop(root_domain_owner, role_id=0) + + dbsession.add(us) + dbsession.flush() def parse_args(argv): @@ -37,7 +62,7 @@ def main(argv=sys.argv): try: with env['request'].tm: dbsession = env['request'].dbsession - setup_models(dbsession) + setup_models(dbsession, settings) except OperationalError: print(''' Pyramid is having a problem using your SQL database. The problem