convert-to-sql: add support for variant pickle class name (#64782)
This commit is contained in:
parent
bde49d22b7
commit
420e68bd29
|
@ -122,18 +122,34 @@ class Command(BaseCommand):
|
|||
print('converting %s' % formdef.name)
|
||||
sql.do_formdef_tables(formdef, rebuild_views=True, rebuild_global_views=True)
|
||||
data_class = formdef.data_class(mode='files')
|
||||
|
||||
if formdef.url_name != formdef.internal_identifier:
|
||||
# handle maybe different name
|
||||
setattr(
|
||||
sys.modules['formdef'],
|
||||
'_wcs_%s' % formdef.internal_identifier.title(),
|
||||
getattr(sys.modules['formdef'], formdef.data_class_name),
|
||||
)
|
||||
|
||||
count = data_class.count()
|
||||
|
||||
# load all objects a first time, to allow the migrate() code to be
|
||||
# run and the eventual changes properly saved.
|
||||
for id in data_class.keys():
|
||||
formdata = data_class.get(id)
|
||||
try:
|
||||
formdata = data_class.get(id)
|
||||
except AttributeError:
|
||||
continue
|
||||
delattr(sys.modules[formdef.xml_root_node], formdef.data_class_name)
|
||||
|
||||
# once this is done, reload and store everything in postgresql
|
||||
sql_data_class = formdef.data_class(mode='sql')
|
||||
for i, id in enumerate(data_class.keys()):
|
||||
formdata = data_class.get(id)
|
||||
try:
|
||||
formdata = data_class.get(id)
|
||||
except AttributeError:
|
||||
errors.append((formdata, traceback.format_exc()))
|
||||
continue
|
||||
formdata._formdef = formdef
|
||||
formdata._evolution = formdata.evolution
|
||||
formdata.__class__ = sql_data_class
|
||||
|
|
Loading…
Reference in New Issue