Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Установка модулей с параметрами подключения к БД, интересует best practises 
V
    Опции темы
errrrr
Дата 9.4.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.4.2009

Репутация: нет
Всего: нет



Есть скрипт и модули, использующие в своей работе БД. Нужно передать их заказчику (предполагается, что MySQL и прочие необходимые вещи у него уже установлены).
Перед выполнением Makefile.pl и тестов нужно, чтобы уже существовали БД и пользователь, от имени которого будем подключаться.  Т.е. весь вопрос в том, каким образом устанавливать в своём скрипте пользовательские хост/порт/пользователя/пароль и кто должен создавать объекты БД.
Требовать от пользователя сделать всё вручную перед установкой (включая правку моего скрипта, чтобы установить его параметры БД)?
В общем, хотелось бы знать как это принято делать.
PM MAIL   Вверх
shamber
Дата 9.4.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Уважаемый errrrr, лично я создавал таблицы MySQL в скрипте "сам". Ставил DBI драйвер-> создание БД-> создание таблиц
PM MAIL Jabber   Вверх
sir_nuf_nuf
Дата 10.4.2009, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



Хм, а может стоит
а) вынести конфиг базы (хост, порт, имя и т.п) в отдельный файл - дабы заказчик мог их выбрать сам ? (ну допустим конфиг приложения)
б) в систему сборки (Makefile) добавить отдельный трагет "installdb", а "install" сделать от него зависимым.
в) в таргете installdb  -  запускать скрипт, который создает схему БД (можно хоть чистый SQL, а можно интерактивный, который будет спрашивать параметры у пользователя, а заодно создавать конфиг для вашего модуля..)




--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
errrrr
Дата 10.4.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.4.2009

Репутация: нет
Всего: нет



Цитата(sir_nuf_nuf @ 10.4.2009,  00:22)
Хм, а может стоит
а) вынести конфиг базы (хост, порт, имя и т.п) в отдельный файл - дабы заказчик мог их выбрать сам ? (ну допустим конфиг приложения)
б) в систему сборки (Makefile) добавить отдельный трагет "installdb", а "install" сделать от него зависимым.
в) в таргете installdb  -  запускать скрипт, который создает схему БД (можно хоть чистый SQL, а можно интерактивный, который будет спрашивать параметры у пользователя, а заодно создавать конфиг для вашего модуля..)

Думаю это то, что нужно, но не знаю как имеено делать.
Дистрибутив делаю с помощью module-starter (h2xs) - он выдаёт Makefile.PL. Я так понимаю, что чтобы привязать свой скрипт к запуску make'ом нужно его вписать каким-то параметром в "Makefile.PL".

И ещё: объясните, плиз, как именно обращаться с конфиг-файлом в *nix из перл, где должен лежать и в каком виде хранить пароль.

Наверное это стандартные вещи, но не нашел ничего толкового.  smile 
PM MAIL   Вверх
sir_nuf_nuf
Дата 11.4.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



обращаться - как вам угодно. Т.е способов столько, что перечислять бессмысленно. 
Поищите в инете - что то типа "parsing configs with perl"

Где должен находится: зависит от вашего модуля. Если это отдельное приложение (программа), то в /etc или /usr/local/etc
(в общем случае в $PERFIX/etc)

Как дописать это к Makefile.PL - читайте документацию по ExtUtils::MakeMaker





--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
errrrr
Дата 12.4.2009, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.4.2009

Репутация: нет
Всего: нет



Таки да, нашел. Называется PL_FILES.
Насчет файла конфигурации в общем-то всё понятно, но не ясно как лучше. По аналогии с win параметры можно хранить общими для всех или только для конкретного пользователя и гарантированно можно узнать путь к соответствующей папке системными функциями или чтением реестра, чтобы не хардкодить. В убунте обнаружилась только переменная окружения "HOME", но это не то.
Что можете посоветовать по поводу безопасности? - пароль к БД придется хранить в открытом виде. Нашел несколько обсуждений на эту тему - там все сводится к ограничениям средствами файловой системы.
PM MAIL   Вверх
sir_nuf_nuf
Дата 13.4.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



Ну вообщем по поводу безопасности - у вас скорее всего нет другого выбора.
Но я думаю проблема решается так:
1) сервер БД не открывает доступ кому попало (т.е. только нужным хостам)
2) на файл конфигурации накладываем права -rw-------        0600 - т.е. доступ только владельцу

это решит большинство проблем.


По поводу того, как правильно - не заморачивайтесь сильно. Сделай лучше "просто". 
Правильного решения в такой задачи просто нет, о чем говорит разнообразие файлов конфигурации в UNIX


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
errrrr
Дата 14.4.2009, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.4.2009

Репутация: нет
Всего: нет



Ok, спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.