Drupal6 -> Drupal7

В очередной раз подошел к снаряду по имени Drupal7. Имею сказать:

1. Если у вас PostgreSQL, то даже Drupal 7.9 (текущий) не сможет поапгрейдиться гладко. Оно пытается сконвертировать поля типа text в тип bytea, а в PostgreSQL 9.1 (другие не пробовал) автоматического преобразования этих типов нет.

Лечение (применяется к базе PostgreSQL до апгрейда):

CREATE OR REPLACE FUNCTION text2bytea(text) RETURNS bytea AS
$BODY$
begin
 return convert_to($1,'UTF-8');
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
CREATE CAST (text as bytea) with function text2bytea(text) as implicit;
Может я тут что и перепутал и as implicit не нужно, но работает и "базовый" сайт (core modules) переносит.

2. А вот в том, что касается contributed modules - счастья у меня нет:

  1. Image Assist для D7 - отсутствует. В результате придется писать скрипт, который сконвертирует [ img_assist ...] в соответствующий HTML-код. Для этого есть готовый скрипт, но он для MySQL, для постгреса придется его допиливать.
  2. Image nodes придется конвертировать в Image fields, я даже это на тестовой инсталляции проделал, но ничего не понял (как те врачи из частушки).
  3. Какой-то понятной замены для Image Assist, так чтобы прямо из написания поста загружать картинки и все такое - пока тоже не нашел. Или не понял.
  4. Модуль fbconnect (логин через Facebook) показался мне неработающим: кнопка не появляется, а сайт начинает временами казать пустые страницы. Возможно, я что-то напутал, конечно, буду еще разбираться.
Другими словами, переезд с D6 на D7, даже для маленького сайта - это явно не проект на выходные, а скорее проект на новогодние каникулы. Туда и отложим. И это я только с тройкой модулей (из десятка) повозился.

Comments

Можно вместо Image Assist попробовать Media http://drupal.org/project/media и у wyziwyg есть такая возможность

Ну вроде да.

А по факту - за 3 минуты овладеть этим хозяйством не получилось, не "проект на выходные".

Ну вот я что-то ниасилил Media.

Да, я могу такое поле добавить к типу "Article", появляется кнопка выбора Media. Могу выбрать. Могу перетащить в окно редактирования даже.

Но счастья - не добавляется. У image assist были понятные фичи (размер можно выбрать, можно руками задать и все такое), а тут - какое-то сплошное огорчение.

но конвертировать старые данные таки придется

Всем здравствуйте!
Пытаюсь перейти на PostgreSQL9.0 DB в Drupale7 (имеется xampp 1.7.7, php 5.3.8, PostgreSQl9.0):
1. Создала все таблицы в PostgreSQL и перенесла туда данные из MySQL DB.
Сломалось все на первой же unserialize функции. Напр., вызов unserialize($cache->data) выдает сообщение, что параметр должен быть string. И зто верно, но PDO_pgsql возвращает
resource для bytea типов данных.
Помогло следующее:
а)добавила ф-цию

function newunserialize ($param) {
if (is_resource($param)) {
$ret = unserialize(stream_get_contents($param));
}
else {
$ret = unserialize($param);
}
return $ret;
}

b) заменила старые unserialize($s) на мою newunserialize($s).
Но разве это выход, исправлять все вызовы unserialize ф-ции?

И еще в коде ../includes/entity.inc файла function propertyQuery() содерджит
строки:

$select_query->addExpression(':entity_type', 'entity_type', array(':entity_type' => $entity_type));
...
$select_query->addExpression(':bundle', 'bundle', array(':bundle' => $entity_type));

А насколько я понимаю в PDO нельзя использовать название таблиц, столбцов как параметры.
И как быть с этим?

P.S. Извините, если не по теме. Одним словом, "если вы не отзоветесь, мы напищем в Спортлото... :)

Add new comment