{{tag>drupal}}

====== PostrgeSQL разница версий ======

Drupal + PostgreSQL = белый экран смерти

===== Подстава со стороны PostgreSQL в следующем. =====

Для хранения временных данных Drupal использует таблицы в наименованиях которых содержится название "cache". Для этих таблиц поле data имеет тип данных "bytea". А в версии 9 данный формат имеет отличное представление от версии 8. И получается интересная картина. Drupal первый раз загружается, данные заносятся в таблицы кеширования, естественно они на выходе ломаются и мы наблюдаем белый экран. 

Данная проблема решается довольно просто. Простым хаком include файла "database.pgsql.inc". Находим строку pg_query($connection, "set client_encoding="UTF8"'); и сразу после нее добавляем pg_query($connection, 'set bytea_output = escape");, для определения формата данных на выходе для этого типа данных.

**Решение:**
<code php>
  $connection = @pg_connect($conn_string);

...

  pg_query($connection, "set client_encoding=\"UTF8\"");
  
  pg_query($connection, "set bytea_output = escape");
</code>
 