Drupal: перенумерация идентификаторов узлов - PullRequest
1 голос
/ 29 мая 2010

Потратив некоторое время на перенос старых данных на новый сайт drupal, мой первый идентификатор узла уже находится на четырехзначной территории.

Кто-нибудь имел опыт работы с этой позицией перенумерации идентификаторов узлов, начиная с № 1? Может быть, использовать прямые запросы к базе данных или модуль, который пересекает и нумерует все узлы?

Конечно, ссылки на узлы должны быть сохранены ... есть ли другие потенциальные проблемы, если я попытаюсь написать это?

Ответы [ 2 ]

4 голосов
/ 30 мая 2010

Для этого нет универсального решения. Вы можете сделать это для вашей конкретной установки Drupal с помощью множества прямых запросов и, возможно, беспорядка PHP для всего, что хранит идентификаторы узлов в виде сериализованных данных. Но это заняло бы много времени и не сработало бы на любом сайте, на котором запущены разные модули. Что приводит нас к вопросу Кевина: почему?

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

2 голосов
/ 30 мая 2010

Вам лучше написать процедуру для импорта данных. Захват процесса в коде. Если вы обнаружите какие-либо ошибки, отмените установку и начните снова Профиль установки сделает это за вас.

Вы должны иметь возможность начать с чистой установки и повторять процесс столько раз, сколько захотите. Вам не нужно запускать процесс дважды при одной и той же установке. Это означает, что ваша проблема (которая на самом деле не проблема) никогда не случится. Это также означает, что вы можете управлять процессом импорта с помощью системы контроля версий.

Вы можете дополнительно автоматизировать этот процесс с помощью что-то вроде селеновой IDE.

Запрос к базе данных напрямую для чего-то подобного (и большинства других вещей) - ужасная идея. Идентификаторы узлов распределены по нескольким таблицам, поэтому вам нужно быть очень осторожным. API узла был бы намного более безопасным и разумным решением. При редактировании узлов используйте API, потому что это то, для чего он предназначен.

В противном случае, я бы настоятельно рекомендовал не изменять идентификаторы узлов, если вы не можете оправдать риск. Принятие правильного решения здесь важнее, чем идентификаторы вашего узла.

...