8

時々、Djangoでモデルの名前を変更する必要があります(または、最近遭遇した1つのケースでは、1つのモデルを2つに分割し、新しい/異なる名前を付けます)。(はい、適切な計画はこの状況を回避するのに役立ちます)。

データベース内の対応するテーブルの名前を変更し、影響を受けるコードを修正した後、1つの問題が残ります。これらのモデルを操作するためにユーザーまたはグループに付与されたアクセス許可は、引き続き古いモデル名を参照します。これを修正する自動または半自動の方法はありますか、それとも手動のデータベース手術の問題ですか?(開発では、auth_permissionsテーブルとsyncdbを削除して再作成できますが、本番環境はそれほど単純ではありません)。

4

5 に答える 5

2

たまたま South スキーマ移行を使用してテーブルの名前を変更した場合、前方移行の次の行により、これが自動的に行われます。

db.send_create_signal('appname', ['modelname'])
于 2012-09-11T00:06:09.093 に答える
2

不足している contenttypes と権限を埋めるスニペットを次に示します。少なくとも auth_permissions をクリーンアップするためのロバ作業の一部を行うように拡張できるのではないかと思います。

于 2009-02-27T15:15:48.813 に答える