def run_from_args(parsed): log_cache_events(getattr(parsed, 'log_cache_events', False)) flags.set_from_args(parsed) parsed.cls.pre_init_hook(parsed) # we can now use the logger for stdout logger.info("Running with dbt{}".format(dbt.version.installed)) # this will convert DbtConfigErrors into RuntimeExceptions task = parsed.cls.from_args(args=parsed) logger.debug("running dbt with arguments {parsed}", parsed=str(parsed)) log_path = None if task.config is not None: log_path = getattr(task.config, 'log_path', None) # we can finally set the file logger up log_manager.set_path(log_path) if dbt.tracking.active_user is not None: # mypy appeasement, always true logger.debug("Tracking: {}".format(dbt.tracking.active_user.state())) results = None with track_run(task): results = task.run() return task, results
def run_from_args(parsed): log_cache_events(getattr(parsed, 'log_cache_events', False)) flags.set_from_args(parsed) parsed.cls.pre_init_hook() logger.info("Running with dbt{}".format(dbt.version.installed)) # this will convert DbtConfigErrors into RuntimeExceptions task = parsed.cls.from_args(args=parsed) logger.debug("running dbt with arguments %s", parsed) log_path = None if task.config is not None: log_path = getattr(task.config, 'log_path', None) initialize_logger(parsed.debug, log_path) logger.debug("Tracking: {}".format(dbt.tracking.active_user.state())) results = None with track_run(task): results = task.run() return task, results
def invoke_dbt(parsed): task = None cfg = None log_cache_events(getattr(parsed, 'log_cache_events', False)) try: if parsed.which in {'deps', 'clean'}: # deps doesn't need a profile, so don't require one. cfg = Project.from_current_directory(getattr(parsed, 'vars', '{}')) elif parsed.which != 'debug': # for debug, we will attempt to load the various configurations as # part of the task, so just leave cfg=None. cfg = RuntimeConfig.from_args(parsed) except DbtProjectError as e: logger.info("Encountered an error while reading the project:") logger.info(dbt.compat.to_string(e)) dbt.tracking.track_invalid_invocation(config=cfg, args=parsed, result_type=e.result_type) return None except DbtProfileError as e: logger.info("Encountered an error while reading profiles:") logger.info(" ERROR {}".format(str(e))) all_profiles = read_profiles(parsed.profiles_dir).keys() if len(all_profiles) > 0: logger.info("Defined profiles:") for profile in all_profiles: logger.info(" - {}".format(profile)) else: logger.info("There are no profiles defined in your " "profiles.yml file") logger.info(PROFILES_HELP_MESSAGE) dbt.tracking.track_invalid_invocation(config=cfg, args=parsed, result_type=e.result_type) return None flags.NON_DESTRUCTIVE = getattr(parsed, 'non_destructive', False) flags.USE_CACHE = getattr(parsed, 'use_cache', True) arg_drop_existing = getattr(parsed, 'drop_existing', False) arg_full_refresh = getattr(parsed, 'full_refresh', False) if arg_drop_existing: dbt.deprecations.warn('drop-existing') flags.FULL_REFRESH = True elif arg_full_refresh: flags.FULL_REFRESH = True logger.debug("running dbt with arguments %s", parsed) task = parsed.cls(args=parsed, config=cfg) return task, cfg