Let's imagine a following simplified Django project:

```
<root>/lib/python2.7/site-packages/externalapp/shop
<root>/myapp

```

`myapp` also extends `externalapp.shop.models` models by adding a few fields. `manage.py makemigrations` did generated following schema migration file called *0004\_auto\_20150410\_2001.py*:

```
from __future__ import unicode_literals
from django.db import models, migrations

class Migration(migrations.Migration):

    # __init__ is added by me as an attempt how to tell django's
    # migration loader operations are for the different application
    def __init__(self, name, app_label):
        super(Migration, self).__init__(name, 'shop')

    dependencies = [
        ('myapp', '__first__'),
        ('shop', '0003_auto_20150408_0958'),
    ]

    operations = [
        migrations.AddField(
            model_name='product',
            name='vat',
            field=models.ForeignKey(to='myapp.VAT', null=True),
        ),
    ]

```

If the above migration schema is placed in `<root>/lib/python2.7/site-packages/externalapp/shop/migrations/` path by default, `manage.py migrate` succeeds and table fields are correctly added.

However if I do move the above migration file into `myapp/migrations/`, following `manage.py migrate` fails with

*django.core.management.base.CommandError: Conflicting migrations detected (0001\_initial, 0004\_auto\_20150410\_2001 in myapp).
To fix them run 'python manage.py makemigrations --merge'*

error message I can't quite understand and suggested `makemigrations --merge` fails with expected:

*ValueError: Could not find common ancestor of set([u'0001\_initial', u'0004\_auto\_20150410\_2001'])*

I've tried to override `migrations.Migration.__init__` to alter derived `app_label` but seems migration loader ignores it.

How adjust migration file so it can work from other application ?
The reason is in production `externalapp` sources can't be directly touched, are read only.