显然,在将我的新用户表添加到站点之后,DJANGOADMINLOG仍然有一个FK to AUTHUSER表。有什么办法解决这个问题吗?我没有看到这个问题在舞台或地方,所以一定是发生了一些奇怪的事情。
回溯(最近的呼叫是最后一次):
文件“/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py”,第115行,get_response response=callback(request,*callback_args,**callback_kwargs)
文件“/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.10.0.28/newrelic/api/object_wrapper.py”,第220行,在调用self._nr_instance,args,kwargs中)
文件“/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.10.0.28/newrelic/hooks/framework_django.py”,第475行,包装器返回包装(*args,**kwargs)
文件“/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/options.py”,第372行,在wrapper中返回self.admin_site.admin_view(view)(*args,**kwargs)
文件“/app/.heroku/python/lib/python2.7/site-packages/django/utils/decorators.py”,第91行,in_wrapped_view response=view_func(request,*args,**kwargs)
文件“/app/.heroku/python/lib/python2.7/site-packages/django/views/decorators/cache.py”,第89行,in_wrapped_view_func response=view_func(request,*args,**kwargs)
文件“/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/sites.py”,第202行,内部返回视图(request,*args,**kwargs)
文件“/app/.heroku/python/lib/python2.7/site-packages/django/utils/decorators.py”,第25行,in_wrapper返回bound_func(*args,**kwargs)
文件“/app/.heroku/python/lib/python2.7/site-packages/django/utils/decorators.py”,第91行,in_wrapped_view response=view_func(request,*args,**kwargs)
bound_func返回函数(self,*args2,**kwargs2)中的文件“/app/.heroku/python/lib/python2.7/site-packages/django/utils/decorators.py”第21行
文件“/app/.heroku/python/lib/python2.7/site-packages/django/db/transaction.py”,第223行,内部返回函数(*args,**kwargs)
文件“/app/.heroku/python/lib/python2.7/site-packages/django/db/transaction.py”,第217行,在exit self.exiting中(exc_value,self.using)
文件“/app/.heroku/python/lib/python2.7/site-packages/django/db/transaction.py”,第281行,在exiting commit(using=using)中
文件“/app/.heroku/python/lib/python2.7/site-packages/django/db/transaction.py”,第152行,在commit connection.commit()中
commit self._commit()中的文件“/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/init.py”,第241行
文件“/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py”,第242行,in_commit six.reraise(utils.integrityerror,utils.integrityerror(*tuple(e.args)),sys.exc_info()[2])
文件“/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py”,第240行,in_commit返回self.connection.commit()
文件“/app/.heroku/python/lib/python2.7/site-packages/newrelic-1.10.0.28/newrelic/hooks/database_dbapi2.py”,第68行,commit return self._nr_connection.commit()
IntegrityError:表“DJANGO_ADMIN_LOG”上得insert或update违反外键约束“DJANGO_ADMIN_LOG_USER_ID_FKEY”详细信息:表“AUTH_USER”中不存在键(user_id)=(2).
这是因为django_admin_log
表仍然包含与旧的auth_user
表的外键关系。
您需要删除它并重新创建表。
$ heroku pg:psql
psql => drop table django_admin_log;
Django<1.7
$ heroku run python manage.py syncdb
对于Django>=1.7
$ ./manage.py sqlmigrate admin 0001 | heroku pg:psql
就是这样:)
使用@dustinfarris Django 1.7编辑+答案精度