Added some more error catching to the attr migrations.

This commit is contained in:
Griatch 2012-02-22 11:40:52 +01:00
parent a923a9a061
commit 440d403327
3 changed files with 41 additions and 30 deletions

View file

@ -151,8 +151,10 @@ class Migration(DataMigration):
def forwards(self, orm): def forwards(self, orm):
"Write your forwards methods here." "Write your forwards methods here."
for attr in orm.ObjAttribute.objects.all(): for attr in orm.ObjAttribute.objects.all():
# repack attr into new format, and reimport # repack attr into new format, and reimport
try:
val = pickle.loads(to_str(attr.db_value)) val = pickle.loads(to_str(attr.db_value))
if hasattr(val, '__iter__'): if hasattr(val, '__iter__'):
val = ("iter", val) val = ("iter", val)
@ -162,6 +164,8 @@ class Migration(DataMigration):
val = ("simple", val) val = ("simple", val)
attr.db_value = to_unicode(pickle.dumps(to_str(to_attr(from_attr(attr, val))))) attr.db_value = to_unicode(pickle.dumps(to_str(to_attr(from_attr(attr, val)))))
attr.save() attr.save()
except TypeError, RuntimeError:
pass
def backwards(self, orm): def backwards(self, orm):
"Write your backwards methods here." "Write your backwards methods here."

View file

@ -154,6 +154,7 @@ class Migration(DataMigration):
def forwards(self, orm): def forwards(self, orm):
"Write your forwards methods here." "Write your forwards methods here."
for attr in orm.PlayerAttribute.objects.all(): for attr in orm.PlayerAttribute.objects.all():
try:
# repack attr into new format, and reimport # repack attr into new format, and reimport
val = pickle.loads(to_str(attr.db_value)) val = pickle.loads(to_str(attr.db_value))
if hasattr(val, '__iter__'): if hasattr(val, '__iter__'):
@ -164,6 +165,9 @@ class Migration(DataMigration):
val = ("simple", val) val = ("simple", val)
attr.db_value = to_unicode(pickle.dumps(to_str(to_attr(from_attr(attr, val))))) attr.db_value = to_unicode(pickle.dumps(to_str(to_attr(from_attr(attr, val)))))
attr.save() attr.save()
except TypeError, RuntimeError:
pass
def backwards(self, orm): def backwards(self, orm):
"Write your backwards methods here." "Write your backwards methods here."

View file

@ -152,6 +152,7 @@ class Migration(DataMigration):
def forwards(self, orm): def forwards(self, orm):
"Write your forwards methods here." "Write your forwards methods here."
for attr in orm.ScriptAttribute.objects.all(): for attr in orm.ScriptAttribute.objects.all():
try:
# repack attr into new format, and reimport # repack attr into new format, and reimport
val = pickle.loads(to_str(attr.db_value)) val = pickle.loads(to_str(attr.db_value))
if hasattr(val, '__iter__'): if hasattr(val, '__iter__'):
@ -162,6 +163,8 @@ class Migration(DataMigration):
val = ("simple", val) val = ("simple", val)
attr.db_value = to_unicode(pickle.dumps(to_str(to_attr(from_attr(attr, val))))) attr.db_value = to_unicode(pickle.dumps(to_str(to_attr(from_attr(attr, val)))))
attr.save() attr.save()
except TypeError, RuntimeError:
pass
def backwards(self, orm): def backwards(self, orm):
"Write your backwards methods here." "Write your backwards methods here."