내가 가지고있는 로컬 포스트 그레스 데이터베이스를 복원 할 때 heroku postgres 데이터 저장소를 사용하는 데 문제가 있습니다. 복원 된 postgres 데이터베이스를 사용하면 Django가 정상적으로 실행됩니다. 그것은 모든 객체를 검색하고 필드, primay key 등을 아무런 문제없이 사용합니다.IntegrityError : 덤프에서 postgres 복원 후 ForeignKey가있는 모든 모델/필드의 "id"열에 null 값
그러나 데이터베이스에 쓰는 경우 모델에 관계없이 동일한 오류가 발생합니다.
psycopg2.IntegrityError: null value in column "id" violates not-null constraint
heroku 데이터베이스를 재설정하고 빈 슬레이트에서 개체를 만들면 문제가 없습니다. 내가 복원 된 데이터베이스에있는 모든 개체를 만들려고하지만, 난 항상 장고 관리자의 기본 모델을 만들려고에서이 null value in column "id" violates not-null constraint
여기 복사/붙여 넣기 스택 트레이스를 얻을. 이 모델 예제는 생성과 관련된 추가 코드가 없기 때문에 선택했습니다. 신호 또는 아무것도.
Django Version: 2.0 Python Version: 3.6.3
Traceback:
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute 85. return self.cursor.execute(sql, params)
The above exception (null value in column "id" violates not-null constraint DETAIL: Failing row contains (null, Special Class, special-class).) was the direct cause of the following exception:
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner 35. response = get_response(request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response 128. response = self.process_exception_by_middleware(e, request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response 126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/options.py" in wrapper 574. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view 142. response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 44. response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/sites.py" in inner 223. return view(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/options.py" in add_view 1553. return self.changeform_view(request, None, form_url, extra_context)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper 62. return bound_func(*args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view 142. response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/decorators.py" in bound_func 58. return func.get(self, type(self))(*args2, **kwargs2)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/options.py" in changeform_view 1450. return self._changeform_view(request, object_id, form_url, extra_context)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/options.py" in _changeform_view 1490. self.save_model(request, new_object, form, not add)
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/options.py" in save_model 1026. obj.save()
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/base.py" in save 729. force_update=force_update, update_fields=update_fields)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/base.py" in save_base 759. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/base.py" in _save_table 842. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/base.py" in _do_insert 880. using=using, raw=raw)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method 82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/query.py" in _insert 1125. return query.get_compiler(using=using).execute_sql(return_id)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql 1280. cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in execute 100. return super().execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in execute 68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute_with_wrappers 77. return executor(sql, params, many, context)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute 85. return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/utils.py" in exit 89. raise dj_exc_value.with_traceback(traceback) from exc_value
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute 85. return self.cursor.execute(sql, params)
Exception Type: IntegrityError at /admin/fantasy/raceclass/add/ Exception Value: null value in column "id" violates not-null constraint DETAIL: Failing row contains (null, Special Class, special-class).
스택 추적에서 모델은 (명심이 오류가 바로이 [아주 기본적인]없는 일. 모든 모델에 발생)
class RaceClass(models.Model):
title = models.CharField(max_length=140)
slug = models.SlugField(unique=True)
def __str__(self):
return self.title
class Meta:
ordering = ['title']
는 방법은 다음과 같습니다 나는 (d) 지역 데이터를 영웅에게 되 돌린다 :
나는 로컬 Postgres 데이터베이스를 버리고있다. (V Heroku가 사용하는 명령에
다음PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump
AWS에 업로드하고, 포스트 그레스 데이터 저장소에 복원 (버전 9.6.5) : ersion 10.0)를 사용하여 명령
heroku pg:backups:restore 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump' DATABASE_URL
이들은 바로 Heroku가 문서에서 모두 : https://devcenter.heroku.com/articles/heroku-postgres-import-export
사이드 노트 : 나는 10.0 포스트 그레스 로컬 버전을 사용하고 있는데 Heroku가 데이터 저장소는 9.6.5
입니다
당신은 오류의 전체 스택 추적 및 오류가 발생하면 (저장하려는 어떤 모델) 실행되는 코드를 게시 할 수 있습니다하십시오 , 그리고 관련된 모델 클래스. 이걸 보면서, 데이터베이스 복원에 문제가있는 것 같지 않지만 데이터베이스에 쓰려고하는 것과 문제가없는 것처럼 보입니다. – solarissmoke
@solarissmoke 스택 추적 및 모델 코드가 추가되었습니다. 문제가 모두에게 일어날 때 찾을 수있는 가장 기본적인 것으로갔습니다. 당신이 도울 수 있기를 바랍니다! – taylor