Проект Django запутался между mysl и sqlite - PullRequest
0 голосов
/ 26 мая 2019

Я не совсем уверен, как правильно сформулировать этот вопрос, так как все мои поиски до сих пор не принесли результатов.По сути, у меня есть проект django, который отлично работал на моем локальном ПК.С тех пор я потратил около недели, пытаясь развернуть его с помощью капли DigitalOcean (Ubuntu 18.04 Server).Я создал экземпляр MySQL на этом сервере и подключил к нему SQL Workbench, и это прекрасно работает.Я также создал виртуальную среду на сервере и создал там новый проект с целью переноса в него существующих файлов проекта после его правильной работы.

Проблема в том, что я могу создатьмодели в этом проекте, производят миграции и переносят все (я знаю, что все это работает, потому что я вижу таблицы и данные, пополняемые в Workbench).Затем я создал суперпользователя, однако всякий раз, когда я пытаюсь войти в / admin /, я получаю следующую ошибку:

no such table: auth_user
Request Method: POST
Request URL:    http://128.xxx.xx.xx/admin/login/?next=/admin/
Django Version: 2.2.1
Exception Type: OperationalError
Exception Value:    
no such table: auth_user
Exception Location: /opt/django_app/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py in execute, line 383
Python Executable:  /opt/django_app/venv/bin/python3
Python Version: 3.6.7
Python Path:    
['/opt/django_app/leneisang',
 '/opt/django_app/venv/bin',
 '/usr/lib/python36.zip',
 '/usr/lib/python3.6',
 '/usr/lib/python3.6/lib-dynload',
 '/opt/django_app/venv/lib/python3.6/site-packages']
Server time:    Sun, 26 May 2019 06:54:40 +0000

Также происходит то, что после того, как я попытаюсь войти в систему, используя мою учетную запись суперпользователя, файл базы данных SQLite3 создаетсама на корневую папку проекта.Также следует отметить, что файл sqlite db имеет владельца «www-data», в то время как все другие файлы в папке проекта имеют «root» в качестве владельца.

Я перебрал множество вариантов, которые изменяют"host" с 127.0.0.1 по IP-адресу дроплета / сервера до 0.0.0.0, и все они имеют одинаковый результат.

Я трижды проверил, и мой файл settings.py выглядит следующим образом:

        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'my-db-name',                       
            'USER': 'my-non-root-account-with-root-privileges',
            'PASSWORD': 'my-password',
            'HOST': '0.0.0.0',
            'PORT': '3306',
        }
    }

1 Ответ

0 голосов
/ 26 мая 2019

Похоже, что у вас все еще установлены обе настройки дБ.

Удалите все базы данных.

Установите настройки базы данных для сервера, который фактически прослушивает.Не используйте 0.0.0.0.MySQL, вероятно, использует сокет по умолчанию, поэтому вам придется установить для него 127.0.0.1, а затем указать django сделать то же самое.

Запустить миграцию.Если он создал новый файл sqlite, то вы что-то пропустили.

Исправьте все ошибки, с которыми вы столкнулись, прежде чем пытаться что-либо предпринять.

Создайте своего суперпользователя.

Попробуйте войти в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...