User migration

* fixes bug in user migration
* catches error in compensation migration on KOM of corrupted EIVs
* optimized log migration
This commit is contained in:
mpeltriaux 2022-08-04 12:22:35 +02:00
parent 492110882b
commit 9d11008fee
3 changed files with 7 additions and 7 deletions

View File

@ -145,7 +145,6 @@ class BaseMigrater:
fetch_results = tmp_cursor.fetchall() fetch_results = tmp_cursor.fetchall()
migrated_identifier = "(migriert)" migrated_identifier = "(migriert)"
instance.log.filter(comment__contains=migrated_identifier).delete()
for result in fetch_results: for result in fetch_results:
comment = f"{result[0]} {migrated_identifier}" comment = f"{result[0]} {migrated_identifier}"
timestamp = make_aware(result[1]) timestamp = make_aware(result[1])
@ -169,15 +168,15 @@ class BaseMigrater:
action.save() action.save()
action.timestamp = timestamp action.timestamp = timestamp
action.save() action.save()
instance.log.add(action) instance.log.add(action)
first_entry = instance.log.order_by("timestamp").first() first_entry = instance.log.order_by("timestamp").first()
last_entry = instance.log.order_by("-timestamp").first() last_entry = instance.log.order_by("-timestamp").first()
if first_entry is not None and instance.created is None: if first_entry is not None and instance.created is None:
instance.created = UserActionLogEntry.get_created_action(first_entry.user) first_entry.action = UserAction.CREATED
instance.created.timestamp = first_entry.timestamp first_entry.save()
instance.created.save() instance.created = first_entry
if last_entry is not None and instance.modified != last_entry: if last_entry is not None and instance.modified != last_entry:
instance.modified = last_entry instance.modified = last_entry

View File

@ -99,7 +99,7 @@ class CompensationMigrater(BaseMigrater):
eivs = tmp_cursor.fetchall() eivs = tmp_cursor.fetchall()
len_eivs = len(eivs) len_eivs = len(eivs)
if len_eivs != 1: if len_eivs != 1:
raise AssertionError(f"{kom_identifier} has {len_eivs} EIVs!") raise ObjectDoesNotExist(f"{kom_identifier} has {len_eivs} EIVs!")
eiv = eivs[0] eiv = eivs[0]
try: try:
intervention = Intervention.objects.get( intervention = Intervention.objects.get(

View File

@ -39,9 +39,10 @@ class UserMigrater(BaseMigrater):
user = User.objects.get_or_create( user = User.objects.get_or_create(
username=result[0] username=result[0]
)[0] )[0]
user.last_name = result[2] user.last_name = result[1]
user.first_name = result[2] user.first_name = result[2]
user.email = result[3] user.email = result[3]
user.save()
appusers = result[4].split(";;;") appusers = result[4].split(";;;")
user_teams = [] user_teams = []