Django ошибка базы данных аутентификации в остальной платформе - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь реализовать инфраструктуру отдыха django в моем текущем проекте. Движок API работает без безопасности. Я пытаюсь выполнить шаги, указанные на странице аутентификации django rest framework, чтобы добавить аутентификацию.

Когда я добавляю следующий раздел в файл settings.py, я не получаю никакой ошибки:

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
    'rest_framework.authentication.TokenAuthentication',
]
}

, но когда я добавляю rest_framework.authtoken в INSTALLED_APPS, и запустить сервер,

Я получаю следующее сообщение:

У вас есть 2 не примененные миграции. Ваш проект может не работать должным образом, пока вы не примените миграции для приложений: authtoken. Запустите 'python manage.py migrate', чтобы применить их.

Затем я попытался запустить:

python manage.py migrate

, и я получил следующие ошибки:

(raioti c -venv) username@username-VirtualBox: ~ / Servers / Repositories / raioti c -venv / raiotic $ python manage.py migrate Операции, которые необходимо выполнить: применить все миграции: MainApp, admin, auth , authtoken, типы содержимого, сеансы Запуск миграций: применение authtoken.0001_initial ... Трассировка (последний вызов был последним): файл "/home/username/venv/lib/python3.6/site-packages/django/db/backends /utils.py ", строка 82, в _execute возвращает файл self.cursor.execute (sql)" /home/username/venv/lib/python3.6/site-packages/django/db/backends/sqlite3 /base.py ", строка 381, при выполнении return return Database.Cursor.execute (self, query) sqlite3.OperationalError: попытка записи базы данных только для чтения

Вышеуказанное исключение было прямой причиной следующего исключения:

Traceback (последний вызов был последним): файл "manage.py", строка 21, в main () Файл "manage.py", строка 17, в main файл execute_from_command_line (sys.argv) "/home/username/venv/lib/python3.6/site-packages/django/core/management/init.py", строка 381, в execute_from_command_line Утилита util.execute () Файл "/home/username/venv/lib/python3.6/site-packages/django/core/management/init.py", строка 375, в файле execute self. fetch_command (подкоманда) .run_from_argv (self.argv) Файл "/home/username/venv/lib/python3.6/site-packages/django/core/management/base.py", строка 323, в самом файле run_from_argv. execute (* args, ** cmd_options) Файл "/home/username/venv/lib/python3.6/site-packages/django/core/management/base.py", строка 364, в файле output output = self. handle (* args, ** options) Файл "/home/username/venv/lib/python3.6/site-packages/django/core/management/base.py", строка 83, в оболочке res = handle_fun c (* args, ** kwargs) Файл "/home/username/venv/lib/python3.6/site-packages/django/core/management/commands/migrate.py", строка 234, в дескрипторе fake_initial = fake_initial, File "/home/username/venv/lib/python3.6/site -packages / django / db / migrations / executor.py ", строка 117, в состоянии миграции = self._migrate_all_forwards (состояние, план, full_plan, fake = fake, fake_initial = fake_initial) Файл" / home / username / venv / lib / python3 .6 / site-packages / django / db / migrations / executor.py ", строка 147, в состоянии _migrate_all_forwards = self.apply_migration (состояние, миграция, fake = fake, fake_initial = fake_initial) Файл" / home / username /venv/lib/python3.6/site-packages/django/db/migrations/executor.py ", строка 245, в файле apply_migration state = migration.apply (state, schema_editor)" / home / username / venv / lib / python3 .6 / site-packages / django / db / migrations /igration.py ", строка 124, в файле apply application.database_forwards (self.app_label, файл schema_editor, old_state, project_state)" / home / username / venv /lib/python3.6/site-packages/django/db/migrations/operations/models.py ", строка 92, в файле database_forwards schema_editor.create_model (модель)" / home / имя пользователя / venv / lib / python3 .6 / site-packages / django / db / backends / base / schema.py ", строка 307, в create_mod el self.execute (sql, params или None) Файл "/home/username/venv/lib/python3.6/site-packages/django/db/backends/base/schema.py", строка 137, в исполнении cursor.execute (sql, params) Файл "/home/username/venv/lib/python3.6/site-packages/django/db/backends/utils.py", строка 99, в исполнении return super ( ) .execute (sql, params) Файл "/home/username/venv/lib/python3.6/site-packages/django/db/backends/utils.py", строка 67, в файле execute возвращает self. _execute_with_wrappers (sql, params, many = False, executor = self._execute) Файл "/home/username/venv/lib/python3.6/site-packages/django/db/backends/utils.py", строка 76, в _execute_with_wrappers возвращает исполнителя (sql, params, many, context) Файл "/home/username/venvlib/python3.6/site-packages/django/db/backends/utils.py", строка 84 , в _execute вернуть файл self.cursor.execute (sql, params) "/home/username/venvlib/python3.6/site-packages/django/db/utils.py", строка 89, в выход повышение dj_exc_value.with_traceback (traceback) из файла exc_value "/home/username/venvlib/python3.6/site-packages/django/db/backends/utils.py", строка 82, в _execute return Файл self.cursor.execute (sql) "/ home / username / venvl ib / python3 .6 / site-packages / django / db / backends / sqlite3 / base.py ", строка 381, при выполнении возвращают Database.Cursor.execute (self, query) django .db.utils.OperationalError : попытка записи в базу данных только для чтения

1 Ответ

0 голосов
/ 07 января 2020

попробуйте изменить права доступа к файлу db.sqlite3, возможно, режим доступен только для пользователя, у которого у вас нет прав на запись в файл.

do

ls -al db.sqlite3
chmod a+w db.sqlite3
python manage.py migrate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...