![](/img/trans.png)
[英]why should we set the local_infile=1 in sqlalchemy to load local file? Load file not allowed issue in sqlalchemy
[英]sqlalchemy query refresh issue after use mysql load file
我使用sqlalchemy作为我的orm,我通过子进程执行mysqlimport cmd,并且在执行之前和之后我查询db记录,我使用statistics_db方法,但是从csv导入后记录计数结果没有增加,我认为这是一个sqlalchemy问题,如何解决这个问题?,谢谢
def statistics_db(f):
@wraps(f)
def wrapper(*args,**args2):
q=Product.query.filter("site='%s'"%g_site_show_name)
pre=q.count()
print "当前数据库中共有%s条关于%s的记录"%(q.count(),g_site_show_name)
time.sleep(3)
back = f(*args, **args2)
post=q.count()
count=pre-post
description="减少" if count>0 else "增加"
print "当前数据库中共有%s条关于%s的记录"%(q.count(),g_site_show_name)
print "%s了%s条记录"%(description,abs(count))
return back
return wrapper
@cost_time
@statistics_db
def batch_csv2db():
"将csv文件中的数据批量导入到数据库中"
if not os.path.exists(g_xml2csv_file):
print "找到压缩文件,从中读取csv文件"
dirname,filename=os.path.split(src)
base,ext=os.path.splitext(filename)
tar_filepath=os.path.join(dirname,base+".tar.gz")
uncompress(tar_filepath)
if not os.path.exists(g_xml2csv_file):
print "未找到可用的csv文件!"
return
cmd="""mysqlimport -u root --password='bin' -L -v --columns='name,price,productid,site,link,smallImage,bigImage,description,createdOn,modifiedOn,size,weight,wrap,material,packagingCount,stock,location,popularity,inStock,categories' --fields-terminated-by=',' --fields-enclosed-by='"' --fields-escaped-by='\\' --lines-terminated-by='\n' search """+g_xml2csv_file
args=shlex.split(cmd)
p=subprocess.Popen(args)
stdout, stderr = p.communicate()
print stdout,stderr
您必须在调用count()
后调用commit()
/ rollback()
结束事务,或者更改隔离级别 。 否则,您将看不到其他连接所做的更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.