를 실행 한 후 나는 makemigrations
를 실행할 수 없습니다 오전 (장고-확장에서 flush
, reset_db
) migrate
, 또는 다른 것을 내 INSTALLED_APPS의 특정 응용 프로그램이있는 경우 . 내가 추가하는 시도까지,장고 - makemigrations를 실행할 수 없습니다 : "그런 테이블"심지어 reset_db
class Issue(models.Model):
title = models.CharField(max_length=255)
description = models.CharField(max_length=1000)
sent = models.BooleanField()
그리고 전 (makemigrations 및 마이그레이션 잘 실행하고 내가 제대로 응용 프로그램/모델을 사용할 수 있습니다) 작업을했다 :
이 앱은 issues
에게 전화를 하나 개의 모델을 가지고 있습니다
severity = models.IntegerField()
및 실행을 시도했습니다. 나는 오류가 없거나 더 이상 기억하지 않지만 그 이후로는 모델에서 severity
을 제거한 후에도 모든 것이 손상됩니다.
내 settings.py에서 issues
응용 프로그램을 제거하면 모든 것이 작동합니다.
오류 내가 얻을 :
[email protected]:~/workspace/budget/src$ python3.5 manage.py makemigrationsTraceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/sqlite3/base.py", line 337, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: issues_issue
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 341, in execute
django.setup()
File "/usr/local/lib/python3.5/dist-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 115, in populate
app_config.ready()
File "/home/madjura/workspace/budget/src/issues/apps.py", line 16, in ready
issues.models.Issue.objects.check_and_send_unsent_issues()
File "/home/madjura/workspace/budget/src/issues/models.py", line 18, in check_and_send_unsent_issues
for issue in issues:
File "/usr/local/lib/python3.5/dist-packages/django/db/models/query.py", line 256, in __iter__
self._fetch_all()
File "/usr/local/lib/python3.5/dist-packages/django/db/models/query.py", line 1087, in _fetch_all
self._result_cache = list(self.iterator())
File "/usr/local/lib/python3.5/dist-packages/django/db/models/query.py", line 54, in __iter__
results = compiler.execute_sql()
File "/usr/local/lib/python3.5/dist-packages/django/db/models/sql/compiler.py", line 835, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python3.5/dist-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/sqlite3/base.py", line 337, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: issues_issue
문제가 INSTALLED_APPS에있는 동안 마이그레이션, 세척 및 reset_db 실행할 때 저도 같은 오류가 발생합니다.
INSTALLED_APPS에서 제거 된 문제로 플러시 및 reset_db를 실행 해 보았지만 문제가 해결되지 않았습니다.
위 작업을 수행하고 makemigrations를 실행하여 마이그레이션을 시도했지만이 방법도 작동하지 않습니다. INSTALLED_APPS (으)로 문제를 되돌려 주면 모든 것이 손상됩니다.
어떻게 해결할 수 있습니까?
편집 :
class IssueManager(models.Manager):
"""Manager for the Issue class."""
def check_and_send_unsent_issues(self):
"""
Checks for unsent Issue objects (Issue.sent = False) and attempts
to send them.
Issues that have been sent are deleted.
If the issue fails to be sent for whatever reason, it is not deleted.
Does nothing if there are no unsent issues.
This method is called once when the server starts.
"""
issues = self.get_queryset().filter(sent=False)
for issue in issues:
try:
make_issue(issue.title, issue.description)
issue.delete()
except PostIssueException:
pass
내가 보내지 않은 문제를 확인하고 Gitlab에 그들을 게시 apps.py 사용 :
어쩌면 관련, 문제의 모델은 기능을 가진 관리자가 있습니다.
편집 2 :
문제 라인을 주석에 의해 해결은 아래 ready()
에, 내 apps.py
에 나타납니다
issues.models.Issue.objects.check_and_send_unsent_issues()
, 나는 이유를 이해하지 않습니다. 누군가 제발 그걸 설명 할 수 있을까요?