in glam/api/migrations/0026_fix_windows_release_sample_count.py [0:0]
def do_migration(apps, fwd=True):
for config in configs:
model = config["model"]
print(f"\nMigrating {config['pretty_name']}...")
table = apps.get_model("api", model).objects.filter(**config["filter"])
total = table.count()
table_iter = table.iterator(100000)
for i, instance in enumerate(table_iter):
if instance.total_sample is not None:
if fwd:
instance.total_sample *= 10
else:
instance.total_sample /= 10
instance.save()
if i % 10000 == 0 or i + 1 == total:
print(
f"{i} out of {total} rows migrated ({round((i+1)/total*100, 1)}%)",
end="\r",
)
print("\nRefreshing views...")