@@ -76,6 +76,8 @@ def dbt_diff(
7676 where_flag : Optional [str ] = None ,
7777 stats_flag : bool = False ,
7878 columns_flag : Optional [Tuple [str ]] = None ,
79+ production_database_flag : Optional [str ] = None ,
80+ production_schema_flag : Optional [str ] = None ,
7981) -> None :
8082 print_version_info ()
8183 diff_threads = []
@@ -115,7 +117,16 @@ def dbt_diff(
115117 if log_status_handler :
116118 log_status_handler .set_prefix (f"Diffing { model .alias } \n " )
117119
118- diff_vars = _get_diff_vars (dbt_parser , config , model , where_flag , stats_flag , columns_flag )
120+ diff_vars = _get_diff_vars (
121+ dbt_parser ,
122+ config ,
123+ model ,
124+ where_flag ,
125+ stats_flag ,
126+ columns_flag ,
127+ production_database_flag ,
128+ production_schema_flag ,
129+ )
119130
120131 # we won't always have a prod path when using state
121132 # when the model DNE in prod manifest, skip the model diff
@@ -169,6 +180,8 @@ def _get_diff_vars(
169180 where_flag : Optional [str ] = None ,
170181 stats_flag : bool = False ,
171182 columns_flag : Optional [Tuple [str ]] = None ,
183+ production_database_flag : Optional [str ] = None ,
184+ production_schema_flag : Optional [str ] = None ,
172185) -> TDiffVars :
173186 cli_columns = list (columns_flag ) if columns_flag else []
174187 dev_database = model .database
@@ -182,6 +195,10 @@ def _get_diff_vars(
182195 else :
183196 prod_database , prod_schema = _get_prod_path_from_config (config , model , dev_database , dev_schema )
184197
198+ # cli flags take precedence over any project level config
199+ prod_database = production_database_flag or prod_database
200+ prod_schema = production_schema_flag or prod_schema
201+
185202 if dbt_parser .requires_upper :
186203 dev_qualified_list = [x .upper () for x in [dev_database , dev_schema , dev_alias ] if x ]
187204 prod_qualified_list = [x .upper () for x in [prod_database , prod_schema , prod_alias ] if x ]
0 commit comments