1

Djangoコメントアプリを使用するDjango1.4サイトがあります。開発バージョンをDjango1.5にアップグレードし、ユーザーモデルを拡張しています-拡張するPersonモデルがありAbstractBaseUserAUTH_PROFILE_MODULE = 'membership.Person'設定にあります。

現時点では、django_commentspostgresqlデータベーステーブルには以下user_idを参照する列がありますauth_user(id)

"django_comments_user_id_fkey" FOREIGN KEY (user_id) REFERENCES auth_user(id) DEFERRABLE INITIALLY DEFERRED

これまでのところ、システムには自分の管理者ユーザー以外のユーザーアカウントがないため、この列には何もありません。Person新しいモデル(テーブルに保存されている)を参照するようにテーブルを更新する必要があると思いますmembership_person。将来的には、ユーザーはアカウントを作成し、ログインしたコメントを投稿できるようになります。

新しいモデルを参照するALTER TABLEために変更するには、どのコマンドを使用する必要がありますか?表と同じようにする必要があります。他に気をつけるべきことはありますか?django_commentsPersondjango_comment_flags

4

1 に答える 1

1

私はコメントテーブルのためにこれをすることになりました:

ALTER TABLE django_comments DROP CONSTRAINT django_comments_user_id_fkey;
ALTER TABLE django_comments ADD CONSTRAINT django_comments_user_id_fkey FOREIGN KEY (user_id) REFERENCES membership_person(id) DEFERRABLE INITIALLY DEFERRED;

コメントフラグテーブルについても同様です。

ALTER TABLE django_comment_flags DROP CONSTRAINT django_comment_flags_user_id_fkey;
ALTER TABLE django_comment_flags ADD CONSTRAINT django_comment_flags_user_id_fkey FOREIGN KEY (user_id) REFERENCES membership_person(id) DEFERRABLE INITIALLY DEFERRED;

うまくいけば、それは仕事をし、問題を引き起こさないでしょう。*指を交差させる*

于 2013-01-18T11:39:59.420 に答える