Drupal: как переименовать первичный ключ в таблице модуля без переустановки последнего

Постановка задачи:

Итак, достаточно распространенная задача. Имеем модуль собственного авторства, который не выложен к примеру в публичный доступ, имеем таблицу модуля, созданную с помощью HOOK_schema(). Нужно, как-то обновить модуль прямо-таки находу, т.е. без переустановки последнего. А именно переименовать к примеру поле, являющееся по совместительству первичным ключом (primary key) заданной таблицы.

Решение задачи:

Берем следующий кусок программного кода, аналогичный показанному ниже, и вставляем в любую нужную вам функцию или прямо просто так:

<?php
db_drop_primary_key('ImyaTablici');
db_change_field('ImyaTablici', 'StaroeImyaPolya', 'NovoeImyaPolya',
      array('type' => 'int', 'not null' => true),
      array('primary key' => array('NovoeImyaPolya')));
?>

Что я здесь делаю:

  • Удаляю все первичные ключи таблицы ImyaTablici — db_drop_primary_key().
  • После спокойненько так  переименовываю бывший primary key не без помощи db_change_field(), и снова назначаю его же.

Небольшие пояснения:

  • ImyaTablici — имя таблицы.
  • StaroeImyaPolya — старое наименование поля.
  • NovoeImyaPolya — новое наименование поля.

Вот и все дела.

 

Опубликовано 6-12-2013 в 17:09


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты