preserve created_time in migration

This commit is contained in:
Your Name 2022-12-19 19:08:41 -05:00
parent 694a312711
commit 72347011b4
2 changed files with 18 additions and 11 deletions

View file

@ -23,8 +23,8 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin):
uid = models.UUIDField(default=uuid.uuid4, editable=False, db_index=True) uid = models.UUIDField(default=uuid.uuid4, editable=False, db_index=True)
owner = models.ForeignKey(User, on_delete=models.PROTECT) owner = models.ForeignKey(User, on_delete=models.PROTECT)
visibility = models.PositiveSmallIntegerField(default=0) # 0: Public / 1: Follower only / 2: Self only visibility = models.PositiveSmallIntegerField(default=0) # 0: Public / 1: Follower only / 2: Self only
created_time = models.DateTimeField(auto_now_add=True) created_time = models.DateTimeField(default=timezone.now) # auto_now_add=True FIXME revert this after migration
edited_time = models.DateTimeField(auto_now=True) edited_time = models.DateTimeField(default=timezone.now) # auto_now=True FIXME revert this after migration
metadata = models.JSONField(default=dict) metadata = models.JSONField(default=dict)
attached_to = models.ForeignKey(User, null=True, default=None, on_delete=models.SET_NULL, related_name="attached_with") attached_to = models.ForeignKey(User, null=True, default=None, on_delete=models.SET_NULL, related_name="attached_with")

View file

@ -80,10 +80,10 @@ class Command(BaseCommand):
for user in tqdm(User.objects.filter(is_active=True)): for user in tqdm(User.objects.filter(is_active=True)):
user.shelf_manager.initialize() user.shelf_manager.initialize()
def clear(self): def clear(self, classes):
print("Deleting all migrated user pieces") print("Deleting migrated user pieces")
# Piece.objects.all().delete() # Piece.objects.all().delete()
for cls in [Review, Comment, Rating, TagMember, Tag, ShelfLogEntry, ShelfMember]: # Collection for cls in classes: # Collection
print(cls) print(cls)
cls.objects.all().delete() cls.objects.all().delete()
@ -138,7 +138,7 @@ class Command(BaseCommand):
try: try:
item_link = LinkModel.objects.get(old_id=entity.item.id) item_link = LinkModel.objects.get(old_id=entity.item.id)
item = Item.objects.get(uid=item_link.new_uid) item = Item.objects.get(uid=item_link.new_uid)
Review.review_item_by_user(item, entity.owner, entity.title, entity.content, {'shared_link': entity.shared_link}, entity.visibility) Review.objects.create(owner=entity.owner, item=item, title=entity.title, body=entity.content, metadata={'shared_link': entity.shared_link}, visibility=entity.visibility, created_time=entity.created_time, edited_time=entity.edited_time)
except Exception as e: except Exception as e:
print(f'Convert failed for {typ} {entity.id}: {e}') print(f'Convert failed for {typ} {entity.id}: {e}')
if options['failstop']: if options['failstop']:
@ -219,12 +219,19 @@ class Command(BaseCommand):
def handle(self, *args, **options): def handle(self, *args, **options):
if options['initshelf']: if options['initshelf']:
self.initshelf() self.initshelf()
elif options['clear']:
self.clear()
elif options['collection']: elif options['collection']:
self.collection(options) if options['clear']:
self.clear([Collection])
else:
self.collection(options)
elif options['review']: elif options['review']:
self.review(options) if options['clear']:
self.clear([Review])
else:
self.review(options)
elif options['mark']: elif options['mark']:
self.mark(options) if options['clear']:
self.clear([Comment, Rating, TagMember, Tag, ShelfLogEntry, ShelfMember])
else:
self.mark(options)
self.stdout.write(self.style.SUCCESS(f'Done.')) self.stdout.write(self.style.SUCCESS(f'Done.'))