Django PostgreSQL DatabaseError:关系“类别”不存在

时间:2012-07-02 13:32:29

标签: django

我正在开发一个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。

有人可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:6)

您还需要在heroku中运行syncdb,以便安装您的应用和模型。

heroku run python manage.py syncdb

如果您对架构进行了更改,并且您正在使用南方:

heroku run python manage.py schemamigration appname --auto