Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Общий раздел => Тема начата: Обухов Дмитрий от 04 Январь 2015, 18:35:10
-
вопрос связанный с вот этим (http://pro-ldap.ru/forum/index.php?topic=282.0).
имеется проект, который разрабатывается много времени. на SQL.
на SQL мы применяем следующую парадигму разработки.
допустим надо добавить поле `age` в таблицу `users` и соответственно добавить код, который будет работать с этим полем в код сервера.
мы делаем два скрипта `up.sql` и `down.sql`
в первом стоит ALTER TABLE делающий апгрейд БД, во втором соответственно даунгрейд.
в итоге если вдруг выкатили на боевой что-то не то, то откатывается все вместе с git вызывая обратные изменения в БД.
сейчас думаем часть БД вынести в LDAP и для LDAP хотелось бы применять подобный подход.
вопрос: есть ли готовые инструменты для работы в подобной парадигме?
-
Здравствуйте, Дмитрий!
Не совсем понятно для чего (для выполнения чего) Вам нужны готовые инструменты? Чтобы внести изменения в запись каталога достаточно использовать просто OpenLDAP-утилиту ldapmodify, вызывая её из обычного bash-скрипта. Изменение записи в каталоге -- вещь достаточно рутинная, не имеющая таких подводных камней, как ALTER TABLE, чтобы могли потребоваться резкие откаты. Тем не менее, добавить и удалить атрибут можно, конечно же, в любой момент стандартными средствами без усилий.
Если я не понял Вашей задачи, опишите поподробнее.
Егор
-
вот смотрите
1. имеется БД (в данном случае LDAP)
2. имеется сервер (набор серверов) программа в которых завязана на структуру БД (например на наличие объектного класса или атрибута)
теперь мы это развиваем
мы пишем в тестовом окружении некий скрипт up. который изменяет структуру БД и одновремено кладет новую версию кода клиента и далее рестартует клиент.
если что-то пошло не так (уже в продакшене) вызываем скрипт down. который изменяет структуру данных назад и откатывает код клиента.
так мы работаем со всеми БД и с LDAP хотим работать так же.
соответственно вопрос: есть ли для LDAP подобные up/down инструменты в готовом виде?
-
Чем Вас не устраивает в качестве стандартного средства утилита 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"
Вот и вся премудрость =) .
Егор