问题描述
过去几个月我一直在生产中使用以下代码,
@task
def sql_run_procs():
"""This is a delete and update..."""
# Get our logger
logger = prefect.utilities.logging.get_logger() # type: ignore
conn = connect_db(prefect.config.kv.p.prod_db_constring,logger) ## wrapper around create_engine()
with conn.connect() as con:
try:
r = con.execute(
f"EXECUTE fs.spETL_MyProc '{prefect.config.kv.p.staging_db_name}'"
).fetchall()
for q in r[0]:
if q == 1:
logger.info(f"Query {q} has Failed")
raise signals.FAIL()
except :
raise sqlAlchemyError("Error in sql Script")
所以像任何优秀的编码员一样,我将代码复制并粘贴到另一个脚本中
@task
def sql_run_procs():
"""This is a clean,truncate and insert"""
# Get our logger
logger = prefect.utilities.logging.get_logger() # type: ignore
conn = connect_db(prefect.config.kv.p.prod_db_constring,logger)
with conn.connect() as con:
try:
r = con.execute(
f"EXECUTE forms.spETL_MyOtherProc '{prefect.config.kv.p.staging_db_name}'"
).fetchall()
for q in r[0]:
if q == 1:
logger.info(f"Query {q} has Failed")
raise signals.FAIL()
except :
raise sqlAlchemyError("Error in sql Script")
并得到以下错误:
AttributeError: 'nonetype' 对象没有属性 'fetchall'
除了存储过程的名称外,唯一的区别是它们在不同的 Prefect 项目中。我已经在这个网站和其他网站上搜索了可能的解决方案,但没有成功。我知道这可能是有什么东西正盯着我的脸,但一个半小时后……你知道。提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)