DjangoとMySQLでForeignKeyのつく条件(の続き)
結構前に、 ここらへん で Django を MySQL で動かす場合の、 ForeignKey のつく条件についてやきもきしてた訳ですが、 チケット #5729 で上がってたみたいで、 r6650 で進展があったっぽいよ。
試しに r6649 と r6650 を比べてみる。 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()
これで、 r6649 で sql を叩くとこんな感じ。
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
- 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
まだ登録されていません。