Таким образом, этот ответ «с чего начать устранение неполадок, подобных этой», поскольку вопрос довольно расплывчатый, и у нас недостаточно информации для эффективного устранения неполадок.
Если это когда-нибудь произойдет снова, первым деломdo - включить ведение журналов операторов для PostgreSQL и посмотреть на операторы по мере их поступления. Это должно показать, что вы начинаете и фиксируете операторы, а также запросы.Устранить проблему такого рода практически невозможно без доступа к запросам.К числу вещей, которые следует искать, относятся пропущенные COMMIT и пропущенные операторы.
После этого, следующее, что нужно сделать, это посмотреть на обстоятельства, при которых ваш компьютер перезагружался.Возможно ли это сделать до ожидаемого коммита?Или он потерял питание и не вовремя сбросил журнал транзакций на диск?
Эти два фактора должны исключить практически все возможные причины на стороне базы данных в среде разработки.В производственной среде для старых версий PostgreSQL вы хотите убедиться, что в системе работает автоочистка, и что вы не получаете предупреждений о переносе xid.В более новых версиях это не проблема, потому что PostgreSQL откажется принимать запросы при приближении к xid wraparound.