2010-01-27 12 views
2

Я только что перенесла свою среду для разработчиков из Ubuntu Linux в Mac OSX snow leopard. Все это работало над Linux. В обоих случаях я использовал MySQL для db Django.Django reset не отбрасывает таблицы

Функция сброса Django не выдаёт команды удаления для всех моделей моего приложения. Вот мой models.py (с полями Форума и объектного пользователя удалены для краткости):

from django.db import models 

class Forum(models.Model): 
    ... 

class User(models.Model): 
    ... 

class Message(models.Model): 
    date = models.DateTimeField() 
    content_file = models.CharField(max_length=48) 
    summary_file = models.CharField(max_length=48) 
    user = models.ForeignKey(User)  
    thread = models.ForeignKey('self', blank=True, null=True) 
    lft = models.IntegerField(default=1) 
    rgt = models.IntegerField(default=2) 

    def __unicode__(self): 
     return str(self.date) + '_' + unicode(self.user) 

class Message_forum(models.Model): 
    message = models.ForeignKey(Message) 
    forum = models.ForeignKey(Forum) 
    status = models.IntegerField() 
    position = models.IntegerField(blank=True, null=True) 

    def __unicode__(self): 
     return unicode(self.message) + '_' + unicode(self.forum) 

Вот вывод команды SQL Джанго:

BEGIN; 
CREATE TABLE `AO_forum` (
    ... 
) 
; 
CREATE TABLE `AO_user` (
    ... 
) 
; 
CREATE TABLE `AO_message` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    `date` datetime NOT NULL, 
    `content_file` varchar(48) NOT NULL, 
    `summary_file` varchar(48) NOT NULL, 
    `user_id` integer NOT NULL, 
    `thread_id` integer, 
    `lft` integer NOT NULL, 
    `rgt` integer NOT NULL 
) 
; 
ALTER TABLE `AO_message` ADD CONSTRAINT `user_id_refs_id_12d253fe` FOREIGN KEY (`user_id`) REFERENCES `AO_user` (`id`); 
ALTER TABLE `AO_message` ADD CONSTRAINT `thread_id_refs_id_12262c89` FOREIGN KEY (`thread_id`) REFERENCES `AO_message` (`id`); 
CREATE TABLE `AO_message_forum` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    `message_id` integer NOT NULL, 
    `forum_id` integer NOT NULL, 
    `status` integer NOT NULL, 
    `position` integer 
) 
; 
ALTER TABLE `AO_message_forum` ADD CONSTRAINT `message_id_refs_id_68762267` FOREIGN KEY (`message_id`) REFERENCES `AO_message` (`id`); 
ALTER TABLE `AO_message_forum` ADD CONSTRAINT `forum_id_refs_id_31073c3d` FOREIGN KEY (`forum_id`) REFERENCES `AO_forum` (`id`); 
COMMIT; 

А вот выход sqlreset Джанго команда:

BEGIN; 
DROP TABLE `AO_user`; 
DROP TABLE `AO_forum`; 
CREATE TABLE `AO_forum` (
    ... 
) 
; 
CREATE TABLE `AO_user` (
    ... 
) 
; 
CREATE TABLE `AO_message` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    `date` datetime NOT NULL, 
    `content_file` varchar(48) NOT NULL, 
    `summary_file` varchar(48) NOT NULL, 
    `user_id` integer NOT NULL, 
    `thread_id` integer, 
    `lft` integer NOT NULL, 
    `rgt` integer NOT NULL 
) 
; 
ALTER TABLE `AO_message` ADD CONSTRAINT `user_id_refs_id_12d253fe` FOREIGN KEY (`user_id`) REFERENCES `AO_user` (`id`); 
ALTER TABLE `AO_message` ADD CONSTRAINT `thread_id_refs_id_12262c89` FOREIGN KEY (`thread_id`) REFERENCES `AO_message` (`id`); 
CREATE TABLE `AO_message_forum` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    `message_id` integer NOT NULL, 
    `forum_id` integer NOT NULL, 
    `status` integer NOT NULL, 
    `position` integer 
) 
; 
ALTER TABLE `AO_message_forum` ADD CONSTRAINT `message_id_refs_id_68762267` FOREIGN KEY (`message_id`) REFERENCES `AO_message` (`id`); 
ALTER TABLE `AO_message_forum` ADD CONSTRAINT `forum_id_refs_id_31073c3d` FOREIGN KEY (`forum_id`) REFERENCES `AO_forum` (`id`); 
CREATE INDEX `AO_message_user_id` ON `AO_message` (`user_id`); 
CREATE INDEX `AO_message_thread_id` ON `AO_message` (`thread_id`); 
CREATE INDEX `AO_message_forum_message_id` ON `AO_message_forum` (`message_id`); 
CREATE INDEX `AO_message_forum_forum_id` ON `AO_message_forum` (`forum_id`); 
COMMIT; 

Производится только команда отправки команд для пользователя и пользователя. Также запутывает и, возможно, связано с тем, что при создании таблиц мое имя проекта Django («AO») добавляется во всех шапках для таблиц форума и пользователя, но в нижнем регистре для сообщений и таблиц message_forum (которые без кавычек команд).

+0

вы пробовали вровень вместо этого? –

+0

Я попробовал флеш, который после запуска sqlreset производит капли для всех таблиц. Однако после запуска сброса один раз, а затем проверки sqlreset снова, он возвращается обратно и имеет только скидки для форума и пользователя. – Neil

ответ

0

Используйте этот

heroku pg:reset SHARED_DATABASE --confirm my_great_app 

Заменить my_great_app с именем приложения