[Solved]-Accessing model manager methods in datamigration


Looks like this is not possible.

From the South documentation:

You can do a lot more with this inside a data migration; any model can
be available to you. The only caveat is that you won’t have access to
any custom methods or managers on your models
, as they’re not
preserved as part of the freezing process (there’s no way to do this
generally); you’ll have to copy any code you want into the migration
itself. Feel free to make them methods on the Migration class; South
ignores everything apart from forwards and backwards.



Since Django 1.8, you can include model managers in migrations by adding the use_in_migrations property.

From the docs:

class MyManager(models.Manager):
    use_in_migrations = True

class MyModel(models.Model):
    objects = MyManager()


Augmenting @mattdedek’s answer with an example of use in a migration

def my_migration_function(apps, schema_editor):
    MyModel = apps.get_model('my_app_name', 'MyModel')

class Migration(migrations.Migration):
    initial = True

    dependencies = [

    operations = [

Currently works in django migrations (tested on version 3.0.4)

Leave a comment