Обновление PostgreSQL с версии 9.6 до версии 11 с помощью Django 1.11 и Heroku

У меня есть монолитное приложение, использующее Django 1.11 и Postgres 9.6, развернутое на Heroku, я использую Heroku Postgres Instances. Heroku просит перейти на более новые версии, потому что Postgres 9.6 скоро будет устаревшим.

Я пытался 2 раза обновить мою производственную БД до версии 10 и 11 и после развертывания и подключения к моему приложению все начинает работать плохо. Почти все планы запросов занимают много времени по сравнению с теми же планами в версии 9.6, которая в настоящее время работает очень хорошо.

Я заметил некоторые ошибки, связанные с подключением pgbouncer после развертывания с новой обновленной БД.

pgbouncer cannot connect to serverSSL connection has been closed unexpectedly

Я использую pgbouncer для обработки соединений с БД в моем приложении, а также я использую технологию пула соединений Heroku для обработки соединений на сервере Postgres. Я вижу отсоединение старого пула и присоединение нового, и кажется, что все работает нормально.

Кроме того, я видел кучу операций SET, занимающих почти 30 секунд, не уверен, что это просто потому, что все начинает так плохо работать после обновления.

SET TIMEZONE

Также даже планы запросов с 1 шагом вызова INDEX занимают почти 600 секунд при низком трафике.

-> Index Scan using some_index_name_idx on some_table_name (cost=0.09..448934.64 rows=298 width=76)

Есть ли что-то, что я должен сделать при переходе с версии 9.6 на более новую версию, что я должен учесть, чтобы избежать нарушения планов запросов?

После двух неудачных попыток, мне пришлось снова подключить мою не обновленную БД и все пришло в норму.

Я следую руководству Heroku для обновления моей БД

https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrading-with-pg-upgrade

Будет очень полезна любая помощь.

Спасибо!

Вернуться на верх