SQLALchemy DB Session with Flask, Postgres

Я использую SQLAlchemy с Flask, как показано здесь: http://flask.pocoo.org/docs/patterns/sqlalchemy/

У меня есть набор тестов Selenium, который сначала запускается с Firefox, а затем с Chrome.

Перед началом тестов в каждом браузере таблицы в тестовой базе данных (PostgreSQL) отбрасываются и создаются.

Он отлично работает для первых браузеров, но для второго браузера попытка создания / удаления SQL просто зависает, и никаких ошибок не отображается.

Я считаю, что это из-за открытых сессий SQLAlchemy, это правильно?

2 Solutions collect form web for “SQLALchemy DB Session with Flask, Postgres”

Я считаю, что это из-за открытых сессий SQLAlchemy, это правильно?

Скорее всего, это так. Чтобы подтвердить это, подключитесь к базе данных postgres и запустите SELECT * FROM pg_stat_activity ;

Я не уверен, как вы справляетесь с созданием / удалением БД, но вы можете захотеть вызвать dispose() и, возможно, recreate() в пуле соединений SQLAlchemy, после проверки того, что все проверенные соединения были возвращены (например, с session.close() ).

Это то, что происходит со мной также при запуске Flask unittest с SQLAlchemy и Postgres. Много раз преступник является исключением, который не распространялся вверх и застревал. Это исключение также прекращает проверку после правильной очистки и, следовательно, замораживания.

Если вы создаете тестовый пакет, тогда вызовите метод отладки на костюм, и он отобразит исключение. Связаны документы этого метода здесь .

Это может быть и ваше наблюдение за открытой сессией Sqlalchemy. Я буду проверять мою теорию, основанную на этом наблюдении завтра. Если он очистит некоторые сомнения, я отправлю сюда.

Посмотрите на этот ответ, который показывает, как вы можете активировать отладчик при исключении. Возможно, это может помочь определить проблему.

  • SQLAlchemy: объединение данных таблицы с помощью внешних ключей
  • Как уловить ошибку 1062 «дублировать запись» независимо от используемой базы данных / движка?
  • Python SqlAlchemy создает табличные классы прагматично
  • Как упорядочить по количеству отношений «многие-ко-многим» в SQLAlchemy?
  • Простой оператор SELECT в существующей таблице с SQLAlchemy
  • Как запросить для всех групп типа 'foo', которые содержат user_x? (таблица «многие-ко-многим»)
  • SQLAlchemy: возвращает существующий объект вместо создания нового при вызове конструктора
  • Переопределение имени таблицы в Flask-Alchemy
  • Python - лучший язык программирования в мире.