#python #django
#python #django
Вопрос:
Я пытаюсь создать веб-страницу, используя python и mezzanine в качестве cms. но я получил эту ошибку после успешного создания суперпользователя:
Superuser created successfully.
Traceback (most recent call last):
File "C:Python39libsite-packagesdjangodbbackendsutils.py", line 62, in execute
return self.cursor.execute(sql)
File "C:Python39libsite-packagesdjangodbbackendssqlite3base.py", line 326, in execute
return Database.Cursor.execute(self, query)
sqlite3.OperationalError: no such table: django_site__old
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:UsersannieDocumentsDMCprojectmanage.py", line 14, in <module>
execute_from_command_line(sys.argv)
File "C:Python39libsite-packagesdjangocoremanagement__init__.py", line 364, in execute_from_command_line
utility.execute()
File "C:Python39libsite-packagesdjangocoremanagement__init__.py", line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:Python39libsite-packagesdjangocoremanagementbase.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "C:Python39libsite-packagesdjangocoremanagementbase.py", line 330, in execute
output = self.handle(*args, **options)
File "C:Python39libsite-packagesmezzaninecoremanagementcommandscreatedb.py", line 61, in handle
func()
File "C:Python39libsite-packagesmezzaninecoremanagementcommandscreatedb.py", line 109, in create_pages
call_command("loaddata", "mezzanine_required.json")
File "C:Python39libsite-packagesdjangocoremanagement__init__.py", line 131, in call_command
return command.execute(*args, **defaults)
File "C:Python39libsite-packagesdjangocoremanagementbase.py", line 330, in execute
output = self.handle(*args, **options)
File "C:Python39libsite-packagesdjangocoremanagementcommandsloaddata.py", line 69, in handle
self.loaddata(fixture_labels)
File "C:Python39libsite-packagesdjangocoremanagementcommandsloaddata.py", line 115, in loaddata
connection.check_constraints(table_names=table_names)
File "C:Python39libsite-packagesdjangodbbackendssqlite3base.py", line 276, in check_constraints
cursor.execute(
File "C:Python39libsite-packagesdjangodbbackendsutils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "C:Python39libsite-packagesdjangodbbackendsutils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:Python39libsite-packagesdjangodbutils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:Python39libsite-packagesdjangoutilssix.py", line 685, in reraise
raise value.with_traceback(tb)
File "C:Python39libsite-packagesdjangodbbackendsutils.py", line 62, in execute
return self.cursor.execute(sql)
File "C:Python39libsite-packagesdjangodbbackendssqlite3base.py", line 326, in execute
return Database.Cursor.execute(self, query)
django.db.utils.OperationalError: Problem installing fixtures: no such table: django_site__old
Ответ №1:
Это связано с этой проблемой в Django: https://code.djangoproject.com/ticket/29182 . Это вызвано новым поведением, введенным в sqlite 3.26. Django исправил его в последних версиях 2.0 и 2.1, но mezzanine пока не поддерживает Django 2.
Самое простое решение — не использовать sqlite — переключиться на postgres, mysql и т. Д. В качестве альтернативы, понизьте sqlite до < 3.26
Ответ №2:
У меня была такая же проблема в действии github, и мне пришлось настроить версию ubuntu, чтобы получить предустановленную версию sqlite, которая будет работать. Что решило проблему для меня, так это изменить эту строку:
runs-on: ubuntu-latest
Для
runs-on: ubuntu-18.04
Получил версию ubuntu, содержащую версию sqlite, которая мне была нужна здесь: https://packages.ubuntu.com/search ?ключевые слова= sqlite3.