Esempio n. 1
0
def _db(app):
    """A clean database initialized with system resources.

    This is used internally by the flask-sqlalchemy plugin; if you want a SQLAlchemy session,
    add a "db_session" parameter to your test function rather than using this.
    """
    # Override the initialization of main.app.db that happens when main.app is imported
    main.app.db.init_app(app)

    with main.app.app.app_context():
        main.app.db.create_all()
        create_system_resources()

    return main.app.db
Esempio n. 2
0
                      dest='init_db',
                      action='store_true',
                      default=False)
    parser.add_option('-a', '--create-admin', dest='create_admin', default='')
    parser.add_option('-m',
                      '--migrate-db',
                      dest='migrate_db',
                      action='store_true',
                      default=False)
    (options, args) = parser.parse_args()

    # DB operations
    if options.init_db:
        print('creating/updating database')
        db.create_all()
        create_system_resources()
    elif options.create_admin:
        parts = options.create_admin.split(':')
        email_address = parts[0]
        password = parts[1]
        assert '.' in email_address and '@' in email_address
        user_id = create_user(email_address, '', password, 'System Admin',
                              User.SYSTEM_ADMIN)
        org_user = OrganizationUser()  # add to system organization
        org_user.organization_id = find_resource('/system').id
        org_user.user_id = user_id
        org_user.is_admin = True
        db.session.add(org_user)
        db.session.commit()
        print('created system admin: %s' % email_address)
    elif options.migrate_db:
Esempio n. 3
0
def _initialize_database():
    """Populate the database with the required tables if needed."""
    # This is a no-op on already-initialized databases, so just do it every time.
    db.create_all()
    create_system_resources()