Calling sqlmesh run equivalent directly from the code
              
              #4468
            
            
          -
| 
         Is there a cleaner/more proper way of doing this than: ? I'm trying to get this done as a part of the pipeline I'm running (the last step of it) and it causes some problems. Especially: 
  | 
  
Beta Was this translation helpful? Give feedback.
      
      
          Answered by
          
            jukiewiczm
          
      
      
        May 27, 2025 
      
    
    Replies: 1 comment
-
| 
         For anyone interested, this is what I ended up doing to catch the errors and keep the logging consistent. from sqlmesh.core.console import CaptureTerminalConsole, RichConsole
from sqlmesh.core.context import Context
console = CaptureTerminalConsole(RichConsole())
ctx = Context()
ctx.console = console
completion_status = ctx.run()
logger.info(f"Run finished.\nLogged output:\n{console.captured_output}")
if completion_status.is_failure:
    raise Exception(f"{console.captured_errors}") | 
  
Beta Was this translation helpful? Give feedback.
                  
                    0 replies
                  
                
            
      Answer selected by
        jukiewiczm
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
        
    
For anyone interested, this is what I ended up doing to catch the errors and keep the logging consistent.