Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 22, 2016 14:12:50

Stan_B
Зарегистрирован: 2016-04-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт не видит базу SQLite

Доброго дня.

На apache2 лежит скрипт обработки данных с html-формы и сохранения их в базу sqlite и сама база test.db. Использую модуль sqlite3. Когда пробую с :memory:, всё вроде передаётся и сохраняется, ошибок нет. Как только в connect() ставлю реальный файл test.db, сразу 500 и “OperationalError: unable to open database file” в логе. Пробовал помещать файл базы и в корень хоста и в папки, то же самое. В интернетах ничерта не могу найти. Уже мозг сломал… Не видит он базу и хоть убей. Буду очень признателен за помощь или совет, потому что из-за этого затыка встал весь проект.

P.S. Речь идёт о wsgi-скрипте. С .py и без сервера всё прекрасно работает.

Отредактировано Stan_B (Апрель 22, 2016 14:17:06)

Офлайн

#2 Апрель 22, 2016 14:27:20

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2583
Репутация: +  60  -
Профиль   Отправить e-mail  

Скрипт не видит базу SQLite

права на файл проверьте



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Апрель 22, 2016 14:31:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Скрипт не видит базу SQLite

Stan_B
Пробовал помещать файл базы и в корень хоста и в папки, то же самое.
Через
sudo -u apache sqlite3 path/filename
убедись, что пользователь, под которым запускается сервер, может открыть и читать файл.



Отредактировано py.user.next (Апрель 22, 2016 14:31:41)

Офлайн

#4 Апрель 22, 2016 15:54:20

Stan_B
Зарегистрирован: 2016-04-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт не видит базу SQLite

py.user.next
Через
sudo -u apache sqlite3 path/filename
убедись, что пользователь, под которым запускается сервер, может открыть и читать файл.

stan@stan-DNSNB:~$ sudo -u apache sqlite3 var/local/www/test.db
sudo: неизвестный пользователь: apache
sudo: не удаётся инициализировать модуль политики

Офлайн

#5 Апрель 22, 2016 16:59:29

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Скрипт не видит базу SQLite

Stan_B
неизвестный пользователь: apache
Если Ubuntu, то www-data.



Офлайн

#6 Апрель 22, 2016 17:03:18

Stan_B
Зарегистрирован: 2016-04-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт не видит базу SQLite

py.user.next
Если Ubuntu, то www-data.

Попробовал:
SQLite version 3.8.2 2013-12-06 14:53:30
Enter “.help” for instructions
Enter SQL statements terminated with a “;”
sqlite> CREATE TABLE test (id_test, name_test);
Error: unable to open database “var/local/www/test.db”: unable to open database file

Офлайн

#7 Апрель 23, 2016 01:32:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Скрипт не видит базу SQLite

Stan_B
Error: unable to open database
Пиши полный путь к файлу. А внутри делай не create, а .tab .



Офлайн

#8 Апрель 23, 2016 10:10:03

Stan_B
Зарегистрирован: 2016-04-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт не видит базу SQLite

py.user.next
Пиши полный путь к файлу

Помогло указание полного пути. Теперь база доступна и запросы выполняются. Благодарю за совет!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version