brotherton-erpnext/erpnext/patches/jan_mar_2012/remove_archive.py
2012-02-21 16:46:57 +05:30

29 lines
695 B
Python

# TODO take backup before running this patch
def execute():
"""
* Restore archived data from arc tables
* Drop arc tables
"""
import webnotes
from webnotes.utils import archive
arc_tables = webnotes.conn.sql('show tables like "arc%"')
try:
count = 0
for tab in arc_tables:
tab = tab[0]
dt = tab[3:]
res = webnotes.conn.sql("SELECT name FROM `%s`" % tab)
for dn in res:
archive.archive_doc(dt, dn[0], restore=1)
count += 1
if not count%100:
webnotes.conn.commit()
webnotes.conn.begin()
except Exception, e:
raise e
else:
webnotes.conn.commit()
for tab in arc_tables:
webnotes.conn.sql("DROP TABLE `%s`" % tab[0])
webnotes.conn.begin()