4

我正在开发一个 Django 应用程序。最初我使用 MySQL 作为数据库。然后,我需要在使用 PostgreSQL 的 heroku 上部署一个演示应用程序。

当我尝试创建一个对象时,我在 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。

任何人都可以帮忙吗?

谢谢。

4

1 回答 1

6

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

heroku run python manage.py syncdb

如果您对架构进行了更改并且您使用的是南,那么:

heroku run python manage.py schemamigration appname --auto
于 2013-03-06T08:16:38.837 回答