【发布时间】:2016-11-03 05:22:16
【问题描述】:
我在本地构建了一个 Django 1.9 项目,并使用 sqlite3 作为我的默认数据库。我有一个名为Download 的应用程序,它定义了models.py 中的DownloadedSongs 表:
models.py
from __future__ import unicode_literals
from django.db import models
class DownloadedSongs(models.Model):
song_name = models.CharField(max_length = 255)
song_artist = models.CharField(max_length = 255)
def __str__(self):
return self.song_name + ' - ' + self.song_artist
现在,为了将我的本地项目部署到 Heroku,我在 settings.py 文件的底部添加了以下几行:
import dj_database_url
DATABASES['default'] = dj_database_url.config()
我的应用程序有一个带有几个文本字段的表单,在提交该表单时,数据被插入到DownloadedSongs 表中。现在,当我在 Heroku 上部署我的项目并尝试提交此表单时,我收到以下错误:
Exception Type: ProgrammingError at /download/
Exception Value: relation "Download_downloadedsongs" does not exist
LINE 1: INSERT INTO "Download_downloadedsongs" ("song_name", "song_a...
这就是我的requirements.txt 文件的样子:
beautifulsoup4==4.4.1
cssselect==0.9.1
dj-database-url==0.4.1
dj-static==0.0.6
Django==1.9
django-toolbelt==0.0.1
gunicorn==19.6.0
lxml==3.6.0
psycopg2==2.6.1
requests==2.10.0
static3==0.7.0
另外,我也尝试过运行以下命令:
heroku run python manage.py makemigrations
heroku run python manage.py migrate
但是,问题仍然存在。这里似乎有什么问题?
【问题讨论】:
-
您可以访问数据库以查看表的名称吗?可能是因为表格都是小写的吗?还是你还需要运行syncdb命令?
-
syndb命令在 Django 1.9 中已弃用。不过,我确实确保我运行了makemigrations命令。
标签: python django python-2.7 heroku django-models