在heroku上部署后,我在尝试登录帐户时遇到以下问题:
relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
bin目录中的所有文件在标题中包含以下行:
#!/home/far/git/django_site.git/Django_work/django_structure/bin/python
完整日志:
ProgrammingError at /accounts/login/
relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
^
Request Method: GET
Request URL: https://stripe-like.herokuapp.com/accounts/login/
Django Version: 2.0.3
Exception Type: ProgrammingError
Exception Value:
relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
^
Exception Location: /app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py in _execute, line 85
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.6.4
Python Path:
['/app',
'/app/django_structure/src',
'/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python36.zip',
'/app/.heroku/python/lib/python3.6',
'/app/.heroku/python/lib/python3.6/lib-dynload',
'/app/.heroku/python/lib/python3.6/site-packages']
使用django.sites(SITE_ID = 1)并没有导致变化。即使在添加SITE_ADD = 1行之后,也不会发生迁移,从而导致错误。
更新
删除db.sqlite3后,我将postgresql db添加到设置文件中。我在迁移后找到了django_site
表:
-- Table: public.django_site
-- DROP TABLE public.django_site;
CREATE TABLE public.django_site
(
id integer NOT NULL DEFAULT nextval('django_site_id_seq'::regclass),
domain character varying(100) NOT NULL,
name character varying(50) NOT NULL,
CONSTRAINT django_site_pkey PRIMARY KEY (id),
CONSTRAINT django_site_domain_a2e37b91_uniq UNIQUE (domain)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.django_site
OWNER TO joe;
-- Index: public.django_site_domain_a2e37b91_like
-- DROP INDEX public.django_site_domain_a2e37b91_like;
CREATE INDEX django_site_domain_a2e37b91_like
ON public.django_site
USING btree
(domain COLLATE pg_catalog."default" varchar_pattern_ops);
答案 0 :(得分:0)
您需要将SITE_ID
添加到 settings.py 中,例如
SITE_ID=1
然后运行命令:
python manage.py migrate
如果这不起作用:
尝试在任何其他迁移之前手动迁移网站应用:
python manage.py migrate sites
python manage.py migrate
答案 1 :(得分:0)
由于空迁移文件夹而发生此类错误。
您需要运行:
python manage.py makemigrations
python manage.py migrate
我希望你的问题能够得到解决。
如果不起作用:
然后从迁移文件夹中手动删除所有.pyc文件。并删除数据库。然后创建数据库。并运行makemigrations和migrate命令。