def _auto_manage_db(options): """ Find and apply all available database migrations, and install or update all available content types. :param options: The command line parameters from the user. """ message = _('Loading content types.') logger.info(message) load_content_types() message = _('Content types loaded.') logger.info(message) message = _('Ensuring the admin role and user are in place.') logger.info(message) # Due to the silliness of the factory, we have to initialize it because the UserManager and # RoleManager are going to try to use it. factory.initialize() role_manager = RoleManager() role_manager.ensure_super_user_role() user_manager = UserManager() user_manager.ensure_admin() message = _('Admin role and user are in place.') logger.info(message) message = _('Beginning database migrations.') logger.info(message) migrate_database(options) message = _('Database migrations complete.') logger.info(message) return os.EX_OK
def _auto_manage_db(options): """ Find and apply all available database migrations, and install or update all available content types. :param options: The command line parameters from the user. """ unperformed_migrations = False message = _('Loading content types.') _logger.info(message) # Note that if dry_run is False, None is always returned old_content_types = load_content_types(dry_run=options.dry_run) if old_content_types: for content_type in old_content_types: message = _( 'Would have created or updated the following type definition: ' + content_type.id) _logger.info(message) message = _('Content types loaded.') _logger.info(message) message = _('Ensuring the admin role and user are in place.') _logger.info(message) # Due to the silliness of the factory, we have to initialize it because the UserManager and # RoleManager are going to try to use it. factory.initialize() role_manager = RoleManager() if options.dry_run: if not role_manager.get_role(SUPER_USER_ROLE): unperformed_migrations = True message = _('Would have created the admin role.') _logger.info(message) else: role_manager.ensure_super_user_role() user_manager = UserManager() if options.dry_run: if not user_manager.get_admins(): unperformed_migrations = True message = _('Would have created the default admin user.') _logger.info(message) else: user_manager.ensure_admin() message = _('Admin role and user are in place.') _logger.info(message) message = _('Beginning database migrations.') _logger.info(message) migrate_database(options) message = _('Database migrations complete.') _logger.info(message) if unperformed_migrations: return 1 return os.EX_OK