我的网站只会从SQL Server加载现有表(品牌)并显示到索引页面。我可以在我的机器上运行网站,没有任何问题,但是当我将项目部署到Heroku时,似乎该表不存在。
(如果网站未连接到SQL Server,则部署工作正常。)
runtime.txt
python-3.7.0
Procfile
web: gunicorn project_heroku.wsgi --log-file -
settings.py
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': DB_DEFAULT_NAME,
'USER': DB_USER,
'PASSWORD': DB_PASSWORD,
'HOST': DB_HOST,
'PORT': '',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
'unicode_results': True,
}
}
}
models.py
class Brand(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=60)
class Meta:
managed = False
db_table = 'brand'
views.py
from .models import Brand
def index(request):
brand = list(Brand.objects.all().values())
context = {
'brand': brand
}
return render(request, 'index.html', context)
我在Heroku上添加了2个构建包
在我的Apt文件中
unixodbc
unixodbc-dev
python-pyodbc
libsqliteodbc
在我的要求中。txt
django
pyodbc
gunicorn
django-heroku
django-pyodbc-azure
该软件包已成功构建,但网站给出此错误
ProgrammingError at /
relation "brand" does not exist
LINE 1: SELECT "brand"."id", "brand"."name" FROM "brand"
请帮助!谢谢!
============================
我发现Heroku自动创建并附加了我不需要的postgresql。因此,我删除了postgresql,并将错误更改为“无法打开lib'SQL Server的ODBC驱动程序17”:找不到文件。 :(我想我必须对DATABASE_URL配置做些什么。