SQLAlchemy отключается от БД SQLite на сайте Django
На моем сайте, построенном на Django, есть страница приборной панели, которая нужна для отображения статистики о кампаниях, запущенных на сайте. При локальном выполнении следующего кода страница приборной панели загружается правильно, но при запуске ее на живом сервере, обслуживаемом через Nginx и Gunicorn, я сталкиваюсь с ошибкой.
Вид приборной панели:
def sysDashboard(request):
template = loader.get_template('AccessReview/sysdashboard.html')
context = {}
disk_engine = create_engine('sqlite:///db.sqlite3')
pio.renderers.default="svg"
print(disk_engine.table_names())
sqlQueries.info(disk_engine.table_names())
df = pd.read_sql_query('SELECT emp.pid, COUNT(*) as `num_reviews` '
'FROM AccessReview_review rev '
'JOIN AccessReview_employee emp ON rev.manager_id=emp.id '
'GROUP BY emp.pid '
'ORDER BY -num_reviews ', disk_engine)
print(df)
fig = go.Figure(
data=[go.Bar(x=df['pid'], y=df['num_reviews'])],
layout_title_text='AccessReview/Reviews per Manager').update_layout(
{'plot_bgcolor': 'rgba(102,78,98,0.5)',
'paper_bgcolor': 'rgba(102,78,98,0.5)',
'font_color': 'rgba(255,255,255,1)'
})
overview_df = pd.read_sql_query('SELECT sys.name, '
'COUNT(*) as `num_reviews`, '
'COUNT(1) FILTER (WHERE reviewComplete=1) as `Completed`, '
'COUNT(1) FILTER (WHERE reviewComplete=0) as `Incomplete` '
'FROM AccessReview_review '
'JOIN AccessReview_System sys ON system_id=sys.id '
'GROUP BY sys.name '
'ORDER BY -num_reviews', disk_engine)
print(overview_df)
overview_fig = go.Figure(
data=[go.Bar (x=overview_df['name'], y=overview_df['num_reviews'])],
layout_title_text='Campaign Overview').update_layout(
{'plot_bgcolor': 'rgba(102,78,98,0.5)',
'paper_bgcolor': 'rgba(102,78,98,0.5)',
'font_color': 'rgba(255,255,255,1)'
}, xaxis={'title':'System', 'fixedrange':True},
yaxis={'title':'Review Count', 'fixedrange':True})
context['overviewGraph'] = overview_fig.to_html()
return HttpResponse(template.render(context, request))
Как я уже сказал, это работает при локальном запуске сервера с помощью py manage.py runserver
, но не работает при доступе к сайту через прокси. Единственное, о чем я могу думать, это то, что есть проблема с тем, как я получаю доступ к базе данных. Машина, которую я использую при локальном запуске, работает под управлением Windows, но сайт находится на сервере под управлением CentOS 8.
Вот полученная ошибка:
Операционная ошибка указывает на то, что существует проблема с чтением из базы данных, а не проблема синтаксиса SQL. Это подтверждается тем фактом, что представление загружается нормально при локальном запуске.
У кого-нибудь есть идеи, почему это не работает?
То, что я пробовал:
Распечатайте все таблицы и столбцы в различных фреймах данных, чтобы убедиться в их существовании
Проверили, что все пакеты Python установлены с локального экземпляра на живой экземпляр и что они имеют одну и ту же версию