Esempio n. 1
0
                                       str) is not None and
                                version.parse(predictor_record.mindsdb_version)
                                < last_compatible_version):
                            predictor_record.update_status = 'available'
                            is_modified = True
        if is_modified is True:
            db.session.commit()
        # endregion

        for integration_name in datasource_interface.get_db_integrations(
                sensitive_info=True):
            print(f"Setting up integration: {integration_name}")
            if datasource_interface.get_db_integration(integration_name).get(
                    'publish', False):
                # do setup and register only if it is 'publish' integration
                dbw.setup_integration(integration_name)
                dbw.register_predictors(model_data_arr,
                                        integration_name=integration_name)

        for integration_name in config.get('integrations', {}):
            try:
                it = datasource_interface.get_db_integration(integration_name)
                if it is not None:
                    datasource_interface.remove_db_integration(
                        integration_name)
                print(f'Adding: {integration_name}')
                datasource_interface.add_db_integration(
                    integration_name, config['integrations'][integration_name]
                )  # Setup for user `None`, since we don't need this for cloud
                if config['integrations'][integration_name].get(
                        'publish', False) and not is_cloud:
Esempio n. 2
0
        'mysql': start_mysql,
        'mongodb': start_mongo
    }

    archive_obsolete_predictors(config, '2.11.0')

    mdb = NativeInterface(config)
    cst = CustomModels(config)

    remove_corrupted_predictors(config, mdb)

    model_data_arr = get_all_models_meta_data(mdb, cst)

    dbw = DatabaseWrapper(config)
    for db_alias in config['integrations']:
        dbw.setup_integration(db_alias)
    dbw.register_predictors(model_data_arr)

    for broken_name in [
            name for name, connected in dbw.check_connections().items()
            if connected is False
    ]:
        log.error(
            f'Error failed to integrate with database aliased: {broken_name}')

    ctx = mp.get_context('spawn')

    for api_name, api_data in apis.items():
        print(f'{api_name} API: starting...')
        try:
            p = ctx.Process(target=start_functions[api_name],