sqlite3.OperationalError: нет такой таблицы: django_site__old

#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

https://github.com/stephenmcd/mezzanine/issues/1910

Ответ №2:

У меня была такая же проблема в действии github, и мне пришлось настроить версию ubuntu, чтобы получить предустановленную версию sqlite, которая будет работать. Что решило проблему для меня, так это изменить эту строку:

 runs-on: ubuntu-latest
 

Для

 runs-on: ubuntu-18.04
 

Получил версию ubuntu, содержащую версию sqlite, которая мне была нужна здесь: https://packages.ubuntu.com/search ?ключевые слова= sqlite3.