django 1.7 と django の移行に移行したときに新しい回答を投稿しましたが、解決策は明らかではありませんでした。リモート テーブルに外部キーを追加するには、独自の移行クラスを作成する必要がありました。
from django.db.migrations import AddField
class AddRemoteField(AddField):
def __init__(self, remote_app, *args, **kwargs):
super(AddRemoteField, self).__init__(*args, **kwargs)
self.remote_app = remote_app
def state_forwards(self, app_label, *args, **kwargs):
super(AddRemoteField, self).state_forwards(self.remote_app, *args, **kwargs)
def database_forwards(self, app_label, *args, **kwargs):
super(AddRemoteField, self).database_forwards(
self.remote_app, *args, **kwargs)
def database_backwards(self, app_label, *args, **kwargs):
super(AddRemoteField, self).database_backwards(
self.remote_app, *args, **kwargs)
次に、移行ファイルを作成します。
from __future__ import unicode_literals
from django.db import models, migrations
from my_app.tools import AddRemoteField
from my_app.models import Client
class Migration(migrations.Migration):
dependencies = [
('anikit', '0002_manual_user_migration'),
]
operations = [
AddRemoteField(
remote_app='auth',
model_name='user',
name='client',
field=models.ForeignKey(Client, verbose_name='client',
null=True, blank=True),
preserve_default=True,
),
]