1

を使用して、テーブルをapp_aから他のテーブルに移動しました。最初にメタ情報を次のように追加しました。app_bdb_table

# app_b.models.ppy
class Table(models.Model)
# all fields
class Meta:
    db_table = 'app_a_table'
    app_label = 'app_a'

でこのテーブルに変更を加えるとapp_b、移行によって移行フォルダの下に新しい移行ファイルが生成されません。それは言います。

No changes detected in app 'app_b'

このansから試してみて、コメントしapp_label = 'app_a'ました。移行後、変更が検出され、移行ファイルが作成されます。

次にpython manage.py migrate、コマンドを実行すると、常に元のテーブルを削除するよう求められますapp_a_table

The following content types are stale and need to be deleted:

    app_a | table

Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.

    Type 'yes' to continue, or 'no' to cancel: no

この通知を抑制するにはどうすればよいですか? このテーブルが別のアプリに存在することをdjango migrationに伝えるにはどうすればよいですか?

4

1 に答える 1

2

とを使用してテーブルapp_aを他のテーブルに移動した後。のみで実行すると、移行は機能します。app_bdb_tableapp_labelapp_a

python manage.py makemigrations app_a

このコマンドは、移行を実行しますapp_b

于 2016-06-03T07:22:19.133 に答える