DjangoとMySQLでForeignKeyのつく条件(の続き)

結構前に、 ここらへんDjangoMySQL で動かす場合の、 ForeignKey のつく条件についてやきもきしてた訳ですが、 チケット #5729 で上がってたみたいで、 r6650 で進展があったっぽいよ。

試しに r6649r6650 を比べてみる。 models.py は前回と同じようにしてテストする。

from django.db import models

class Oya(models.Model):
    body = models.TextField()

class Kodomo(models.Model):
    parent = models.ForeignKey(Oya)
    body = models.TextField()

これで、 r6649sql を叩くとこんな感じ。

BEGIN;
CREATE TABLE `hige_oya` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `body` longtext NOT NULL
)
;
CREATE TABLE `hige_kodomo` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `parent_id` integer NOT NULL REFERENCES `hige_oya` (`id`),
    `body` longtext NOT NULL
)
;

これが r6650 だとこう変わる。

BEGIN;
CREATE TABLE `hige_oya` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `body` longtext NOT NULL
)
;
CREATE TABLE `hige_kodomo` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `parent_id` integer NOT NULL,
    `body` longtext NOT NULL
)
;
-- The following references should be added but depend on non-existent tables:
-- ALTER TABLE `hige_kodomo` ADD CONSTRAINT parent_id_refs_id_66492efa FOREIGN KEY (`parent_id`) REFERENCES `hige_oya` (`id`);
COMMIT;

変わった事は変わったんだけど、なぜコメントアウト? 「存在しないテーブルへの参照だから。」って言われても、ちゃんとあるんだけどなぁ。

実際作られるテーブルを見てみると、両方とも前回同様こうなった。

mysql> SHOW CREATE TABLE `hige_kodomo`\G
*************************** 1. row ***************************
       Table: hige_kodomo
Create Table: CREATE TABLE `hige_kodomo` (
  `id` int(11) NOT NULL auto_increment,
  `parent_id` int(11) NOT NULL,
  `body` longtext NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `hige_kodomo_parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

#5729 は既にクローズされてるし、実に悩ましい。 って言うより、こういう時にリオープン出来るだけの英語力がない(実力もない)のが何よりも悩ましい。

Posted at: 
2007/11/05 22:41:49
0 Comments
1 TrackBack
Tags: 
Django
MySQL
Python
Trackback: 
http://humming.via-kitchen.com/2007/11/05/mysql-foreignkey-on-django/trackback/

TrackBacks

[Django][Python][jQuery][CSS][その他]巡回 - 常山日記

Django Snippets: Google Analytics Template Tag Blog: Django Utilidades Snippets de código para Django “Server startup” and its discontents Validator App for Django DjangoとMySQLでForeignKeyのつく条件(の続き) Django in JavaScript A page CMS for

Created at: 
2007/11/07 05:00:24

Comments

まだ登録されていません。

Add Comment

Add Comment