我如何在导入时执行事务回滚和提交

时间:2015-04-07 06:47:32

标签: django database postgresql python-2.7 transactions

下面给出的代码是将数据导入我的django模型的程序, 实际上这个程序做的是它读取文件并将它从文件导入到django模型的每一行,这里可能会有1000个文件,某些文件中会出现一些错误,如果该文件,程序会捕获异常有任何类型的错误并记录它,但我需要的是从一个抛出错误的文件回滚整个事务。我想在postgres中这样做

def impSecOrdr_File(self,path):
    lines=1
    try:
        fromFile=open(path)
        for eachLine in fromFile:
            obj = SecOrdr_File()
            if lines!=1:
                fieldsInline = eachLine.split(",")
                obj.dates =  dates
                obj.column1 = fieldsInline[0].strip()
                obj.column2 = fieldsInline[1].strip()
                obj.column3 = float(fieldsInline[2].strip())
                obj.column4 = float(fieldsInline[3].strip())
                obj.save()
            lines+=1
    except BaseException as e:
        transaction.rollback()
        logging.info('\tError in importing %s line %d : %s' % (path, lines, e.__str__()))
    else:
        try:
            logging.info("\tImported %s, %d lines" % (path, lines))
        except Exception as e:
            logging.info(e)

有没有办法做到这一点。我浏览了django交易文件,我尝试了其中一些,但它不起作用..任何人都可以帮助我

0 个答案:

没有答案