我正在开发一个Django应用程序。最初我使用MySQL作为数据库。然后,我需要在heroku上部署一个演示应用程序,它使用PostgreSQL。
当我尝试创建一个对象时,我在heroku中收到错误,即使是从shell开始。
这就是我想要做的事情:
>> from store.models import Product, Category
>> cat = Category()
>> cat.name = 'books'
>> cat.description = 'books'
>> cat.slug = 'books'
>> cat.save()
我收到以下错误:
......
DatabaseError: relation "categories" does not exist
这是我的类别和产品型号
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)
它适用于MySQL,但不适用于PostgreSQL。
有人可以帮忙吗?
感谢。
答案 0 :(得分:6)
您还需要在heroku中运行syncdb,以便安装您的应用和模型。
heroku run python manage.py syncdb
如果您对架构进行了更改,并且您正在使用南方:
heroku run python manage.py schemamigration appname --auto