Skip to content
Snippets Groups Projects
Select Git revision
  • df844fdc651d156ee93b0a434ece012643cb19af
  • main default protected
2 results

installer.py

Blame
  • Forked from Brady James Garvin / advanced_orm_relations
    Source project has a limited visibility.
    installer.py 950 B
    # -*- coding: utf-8; -*-
    
    from sys import stderr
    
    from sqlalchemy.exc import SQLAlchemyError
    
    from database import Database, Person
    
    
    def add_starter_data(session):
        alice = Person(name='Alice')
        bob = Person(name='Bob', mentor=alice)
        carol = Person(name='Carol', supervisor=alice, mentor=bob)
        session.add(alice)
        session.add(bob)
        session.add(carol)
    
    
    def main():
        try:
            url = Database.construct_mysql_url('localhost', 3306, 'people', 'root', 'cse')
            database = Database(url)
            database.ensure_tables_exist()
            print('Tables created.')
            session = database.create_session()
            add_starter_data(session)
            session.commit()
            print('Records created.')
        except SQLAlchemyError as exception:
            print('Database setup failed!', file=stderr)
            print('Cause: {exception}'.format(exception=exception), file=stderr)
            exit(1)
    
    
    if __name__ == '__main__':
        main()