def do_migration()

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...")