2012-07-02 1 views
4

Je travaille sur une application Django. Initialement, j'utilisais MySQL pour la base de données. Ensuite, j'avais besoin de déployer une application de démonstration sur heroku, qui utilise PostgreSQL.Django PostgreSQL DatabaseError: la relation "categories" n'existe pas

Je reçois une erreur dans heroku lorsque j'essaie de créer un objet, même à partir du shell.

C'est ce que je suis en train de faire:

>> from store.models import Product, Category 
>> cat = Category() 
>> cat.name = 'books' 
>> cat.description = 'books' 
>> cat.slug = 'books' 
>> cat.save() 

Je reçois l'erreur suivante:

...... 
DatabaseError: relation "categories" does not exist 

Voici mes modèles Catégorie et produits

class Category(models.Model): 
    name = models.CharField(max_length=50) 
    description = models.TextField() 
    slug = models.SlugField(max_length=50, unique=True) 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 

class Product(models.Model): 
    name = models.CharField(max_length=100, unique=True) 
    description = models.TextField() 
    price = models.DecimalField(max_digits=9, decimal_places=2) 
    slug = models.SlugField(max_length=50, unique=True) 
    categories = models.ManyToManyField(Category) 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 

Il fonctionne très bien avec MySQL, mais pas avec PostgreSQL.

Quelqu'un peut-il aider?

Merci.

+1

assez simple. Pour une raison quelconque, ce champ n'est pas réellement sur votre table de base de données. Exécutez 'python manage.py dbshell', puis entrez' \ d + yourapp_product' à l'invite pour voir l'état actuel. –

Répondre

6

Vous devez également exécuter syncdb dans heroku afin d'installer votre application et vos modèles.

heroku run python manage.py syncdb 

Si vous avez modifié votre schéma et que vous utilisez au sud puis:

heroku run python manage.py schemamigration appname --auto 
Questions connexes