sql >> データベース >  >> RDS >> PostgreSQL

Djangoはテストフィクスチャをロードできません、IntegrityError

    djangodumpdataがフィクスチャを間違った順序でダンプしたようです。 jsonファイルを調べて、 product かどうかを確認します id:1 そこに存在しています。私が思うに、これが本当なら、データをダンプするためにいくつかのより洗練されたツールを使用してください。例えば、 django-fixture-magic

    または、アップロードの直前にデータベースエンジンを使用してすべての整合性制約を削除し、直後にそれらを再作成することもできますが、整合性エラーが発生する場合はリスクが伴います。

    PostgreSQLについては、このスレッド を参照してください。 テーブル定義を取得する方法を知るため。 MySQLでは、次のようになります。

      $ mysqldump --no-data -utest django auth_user_user_permissionsCREATE TABLE `auth_user_user_permissions`(` id` int(11)NOT NULL AUTO_INCREMENT、 `user_id` int(11)NOT NULL、 `permission_id` int(11) NOT NULL、PRIMARY KEY( `id`)、UNIQUE KEY` user_id`(` user_id`、 `permission_id`)、KEY` auth_user_user_permissions_403f60f`( `user_id`)、KEY` auth_user_user_permissions_1e014c8f`( `permission_id`)、CONSTRAINT` FOREIGN KEY( `user_id`)REFERENCES` auth_user`( `id`)、CONSTRAINT `permission_id_refs_id_67e79cb` FOREIGN KEY( `permission_id`)REFERENCES` auth_permission`( `id`))ENGINE =InnoDB DEFAULT CHARSET =utf8;  

    次の部分は、oracle、postgre、およびmysqlで機能するはずです

     > alter table `auth_user_user_permissions` drop external key` user_id_refs_id_dfbab7d`; Query OK、0 rowsaffected(0.97 sec)Records:0 Duplicates:0 Warnings:0> alter table `auth_user_user_permissions` add CONSTRAINT` user_id_refs_id_dfbab7d` KEY( `user_id`)は` auth_user`( `id`);クエリOK、影響を受ける行は0(0.95秒)レコード:0重複:0警告:0  



    1. hibernateを使用したスト​​アドプロシージャを介して複数のテーブルエンティティを取得できません

    2. 行番号を持つmysqlスワップアイテム

    3. Hashsetを休止状態で永続化することはできません

    4. MySql:ステートメントを宣言する前にストアドプロシージャを呼び出す方法