Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 3, 2011 12:49:29

Yanzay
От:
Зарегистрирован: 2011-02-14
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

FastCGI и DatabaseError

Добрый день.
Возникла такая проблема: пытаюсь развернуть джанго на nginx, однако при таком способе у меня джанго в упор не видит базы данных, то есть выдаёт DatabaseError (no such table) при заходе на любую страничку. Хотя в тестовом сервере (runserver) всё работает отлично.
Подскажите, в чём может быть загвоздка.

База в sqlite.



Отредактировано (Дек. 3, 2011 12:58:06)

Офлайн

#2 Дек. 3, 2011 14:38:09

fashust
От:
Зарегистрирован: 2011-07-17
Сообщения: 30
Репутация: +  3  -
Профиль   Отправить e-mail  

FastCGI и DatabaseError

а syncdb что сказал?



import this

Офлайн

#3 Дек. 3, 2011 17:44:56

Yanzay
От:
Зарегистрирован: 2011-02-14
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

FastCGI и DatabaseError

fashust
а syncdb что сказал?
syncdb показывает что всё нормально. говорю же, с runserver всё работает как часы, а при использовании runfcgi таблиц в базе вообще не видит.

Всё, проблему решил, прописал полный путь к файлу базы в settings.py (кривое решение, может кто подскажет получше?), появилась новая: в админке отвалились стили, что вообще странно. Кто что скажет?



Отредактировано (Дек. 3, 2011 17:57:25)

Офлайн

#4 Дек. 3, 2011 19:13:57

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

FastCGI и DatabaseError

Yanzay
Кто что скажет?
Одна тема – один вопрос!



Офлайн

#5 Дек. 3, 2011 20:35:08

fashust
От:
Зарегистрирован: 2011-07-17
Сообщения: 30
Репутация: +  3  -
Профиль   Отправить e-mail  

FastCGI и DatabaseError

Ну, для начала пропиши в settings.py что-то типо такого:

import os
.....
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
....
MEDIA_ROOT = PROJECT_ROOT + '/media'
....
STATIC_ROOT = PROJECT_ROOT + '/static'
для бд потом можешь просто написать
PROJECT_ROOT + 'что-то там где лежит твой файл'
По поводу стилей в админке. А что у тебя помимо fastcgi? или все на нем висит?



import this

Офлайн

#6 Дек. 3, 2011 21:27:01

Yanzay
От:
Зарегистрирован: 2011-02-14
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

FastCGI и DatabaseError

Александр Кошелев
Одна тема – один вопрос!
Прошу прощения, просто решение одного потянуло другой =)

fashust
Ну, для начала пропиши в settings.py что-то типо такого:
За это огромное спасибо, помогло. Надо было и самому до этого догадаться.

fashust
По поводу стилей в админке. А что у тебя помимо fastcgi? или все на нем висит?
Оказалось (на сколько я понял) nginx и не пытается запрашивать статику у джанго, а отдаёт её сам. А так как он не знает где находится статика админки, вот и не подтягивал стили. Решилось добавлением в конфиг nginx алиаса такого типа (может кому пригодится):

location /static/admin {
alias /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/contrib/admin/media;
expires 30d;
}
Соответственно нужно поставить свой путь к каталогу django/contrib/admin/media



Офлайн

#7 Дек. 4, 2011 09:48:33

fashust
От:
Зарегистрирован: 2011-07-17
Сообщения: 30
Репутация: +  3  -
Профиль   Отправить e-mail  

FastCGI и DatabaseError

ну вообще лучше не прописывать так как у тебя тут:

Yanzay
location /static/admin {
alias /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/contrib/admin/media;
expires 30d;
}
Лучше сделай символическую ссылку на admin/media и помести ее куда-то в свой проект, а в конфигах nginx пропиши:
location /static/admin {
alias /project_dir/other/admin/media;
expires 30d;
}



import this

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version