Автор Тема: разработка проекта: апгрейд БД LDAP  (Прочитано 17480 раз)

Обухов Дмитрий

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
разработка проекта: апгрейд БД LDAP
« : 04 Январь 2015, 18:35:10 »
вопрос связанный с вот этим.

имеется проект, который разрабатывается много времени. на SQL.
на SQL мы применяем следующую парадигму разработки.

допустим надо добавить поле `age` в таблицу `users` и соответственно добавить код, который будет работать с этим полем в код сервера.
мы делаем два скрипта `up.sql` и `down.sql`

в первом стоит ALTER TABLE делающий апгрейд БД, во втором соответственно даунгрейд.

в итоге если вдруг выкатили на боевой что-то не то, то откатывается все вместе с git вызывая обратные изменения в БД.

сейчас думаем часть БД вынести в LDAP и для LDAP хотелось бы применять подобный подход.

вопрос: есть ли готовые инструменты для работы в подобной парадигме?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: разработка проекта: апгрейд БД LDAP
« Ответ #1 : 08 Январь 2015, 14:30:39 »
Здравствуйте, Дмитрий!

Не совсем понятно для чего (для выполнения чего) Вам нужны готовые инструменты? Чтобы внести изменения в запись каталога достаточно использовать просто OpenLDAP-утилиту ldapmodify, вызывая её из обычного bash-скрипта. Изменение записи в каталоге -- вещь достаточно рутинная, не имеющая таких подводных камней, как ALTER TABLE, чтобы могли потребоваться резкие откаты. Тем не менее, добавить и удалить атрибут можно, конечно же, в любой момент стандартными средствами без усилий.

Если я не понял Вашей задачи, опишите поподробнее.

Егор

Обухов Дмитрий

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: разработка проекта: апгрейд БД LDAP
« Ответ #2 : 08 Январь 2015, 23:25:38 »
вот смотрите

1. имеется БД (в данном случае LDAP)
2. имеется сервер (набор серверов) программа в которых завязана на структуру БД (например на наличие объектного класса или атрибута)

теперь мы это развиваем

мы пишем в тестовом окружении некий скрипт up. который изменяет структуру БД и одновремено кладет новую версию кода клиента и далее рестартует клиент.

если что-то пошло не так (уже в продакшене) вызываем скрипт down. который изменяет структуру данных назад и откатывает код клиента.

так мы работаем со всеми БД и с LDAP хотим работать так же.

соответственно вопрос: есть ли для LDAP подобные up/down инструменты в готовом виде?


egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: разработка проекта: апгрейд БД LDAP
« Ответ #3 : 09 Январь 2015, 10:17:03 »
Чем Вас не устраивает в качестве стандартного средства утилита ldapmodify? Простой пример обёртки (без проверок):
#/bin/sh

# DN записи
DN=$1
# Тип операции: add или delete
OP_TYPE=$2
# Тип атрибута
ATTR=$3
# Значение атрибута
VALUE=$4

(
cat <<EOL
dn: $DN
changetype: modify
$OP_TYPE: $ATTR
$ATTR: $VALUE
EOL
) | ldapmodify -D 'cn=manager,ou=System,dc=mycompany,dc=ru' -y /tmp/password.txt

Вызов для добавления атрибута:
# ./ldap-attr-change.sh 'uid=anton,ou=People,dc=mycompany,dc=ru' add description 'some test value'
Warning: Password file /tmp/password.txt is publicly readable/writeable
modifying entry "uid=anton,ou=People,dc=mycompany,dc=ru"
Вызов для добавления атрибута:
# ./ldap-attr-change.sh 'uid=anton,ou=People,dc=mycompany,dc=ru' delete description 'some test value'
Warning: Password file /tmp/password.txt is publicly readable/writeable
modifying entry "uid=anton,ou=People,dc=mycompany,dc=ru"

Вот и вся премудрость =) .
Егор

 

Эта страница

Содержание

Новости:
Форум проекта Pro-LDAP.ru
OpenLDAP 2.4 Руководство

Содержание

Введение в службы каталогов OpenLDAPБыстрое развёртывание и начало работыОбщая картина - варианты конфигурацииСборка и установка OpenLDAPНастройка slapd

 

Конфигурационный файл slapdЗапуск slapdКонтроль доступаОграниченияИнструментыМеханизмы манипуляции даннымиНаложенияСпецификация схемы

 

БезопасностьSASLTLSРаспределённая служба каталоговРепликацияОбслуживаниеМониторингПроизводительностьУстранение неполадок
Перевод официального руководства OpenLDAP 2.4 Admin Guide
Полное содержание здесь
LDAP для учёных-ракетчиков

Содержание

О книгеКонцепции LDAPОбъекты LDAPУстановка LDAPПримерыНастройкаРепликация и отсылкиLDIF и DSMLПротоколLDAP API

 

HOWTOНеполадкиПроизводительностьИнструменты LDAPБезопасностьЗаметкиРесурсы LDAPRFC и X.500ГлоссарийОбъекты
Перевод "LDAP for Rocket Scientists"
Полное содержание здесь
Ресурсы

Книги

Руководство OpenLDAP 2.4LDAP для учёных-ракетчиков

Другие

СтатьиТермины LDAPman-страницы OpenLDAP 2.4Список RFCКлиенты LDAPФайлы наборов схемы
Полезные ресурсы
Форум

 

Разделы форумаНепрочитанные сообщенияПоследние сообщения
Форум проекта
Главная

Pro-LDAP.ru

О проектеНовости проектаУчастникиСтаньте участником!Сообщите об ошибке!Об авторских правахСоглашения проекта
Присоединяйсь!