Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Администрирование / Общее администрирование / Система контроля версий для WEB разработки. (20598 хитов)
- Написал(а) hawk Дата 29.10.10 05:38
Приветствую всех!

Назрела необходимость организации Системы Контроля Версий (далее СКВ) для WEB разработки. В связи с чем вопрос, что наиболее подходит для этих целей. Какие задачи думаю надо решить:
- Полностью исключить ФТП доступ к серверу для заливки-скачивания файлов. Все изменения через СКВ. (Думаю это наиболее легкая часть)
- Как быть с правкой баз данных, эти правки как то тоже надо пропускать через систему.

Решение нужно под FreeBSD, когда то поднимал Subversion (SVN), не знаю на сколько это будет удобно. Еще один момент, хостингов несколько, хотя на начальном этапе можно начать с одного сервера.

p/s Сам себя приучил пользоваться RCS для учета изменений конфигурационных файлов, очень удобно и порядок в системе. Если кому интересно советую, в UNIX и всех его реализациях присутствует в системе, в Linux надо ставить.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent Написал(а) hawk Дата 29.10.10 07:06
С базой пока идея хранить тектовики в репозитории СКВ, а изменения записывать php скриптом, тогда будут отображаться изменения. Только боюсь без всеми любимого инструмента phpmyadmin, идея эта приведет к нервному срыву прог-ста ))
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) LOE (Site/forum admin) Дата 29.10.10 10:06
Идея такая (речь только про структуру базы-таблиц плюс служебные данные по необходимости).

Есть некая структура базы.
Хочется создать новую таблицу или модифицировать существующую.
Нужен скрипт, который хранит новую структуру. Этот скрипт должен проанализировать текущее состояние дел, найти различия в структуре таблиц и проапгрейдить таблицы до желаемого состояния.
Тогда все укладывается в рамки СКВ - модифицируется один скрипт.

Как бонус, этот скрипт послужит делу при апгрейде сайта (движок, скрипты) до новой версии.

Здешний форум (mwforum) имеет именно такой скрипт, при обновлении движка он запускается (правда вручную и один раз) и приводит структуру базы к нужному состоянию, анализируя изменения, вносимые от версии к версии (там должны пройти разные виды обновления).

Ну а в остальном, сайтовый движок (скрипты) должен сам работать с самими данными и предоставлять возможность вносить изменения и удалять данные.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) hawk Дата 29.10.10 10:28
Боюсь, что этим вопросом придется озадачится самому, программист как работал в пхпадмине так и будет. Посему, может майсклдампом снимать дампы баз раз в день (или чаще), сравнивать отличия и писать их в третий файл? Будет и бекап и изменения. Или эти дампы пихать в SVN, не знаю в этом случае как будут регистрироваться отличия. Вообще задача думаю не новая, инструмент учета изменений думаю должен идти вместе с поставляемым инструментарием к MySQL например, может это уже есть?
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) Bercut Дата 01.11.10 16:02
я так уж дополню лучче поздно чем через год
вообще все запросы г базенке логируются, и если анналлизировать именно ихь, то биш логи, то тут как раз таки и до дела можно добраться
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 01.11.10 16:36
Ага, верно, врубал логи, эх и дофига там г.... :-) Оставил только логирование медленных запросов  >3 сек в лог.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent Написал(а) Bercut Дата 03.11.10 12:51
это уж кому что нужно
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent Написал(а) G0thic Дата 26.11.10 17:34
Правильно. Если меняется структура баз, то делается экспорт структуры и дифом изменения сохранять.
Если данные, то transaction log использовать.
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent Написал(а) hawk Дата 23.10.12 08:26
Дополню, для MySQL - Revision Engine пока в альфе.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) voral Дата 27.11.12 07:39
мне больше всего нравится git.
Но у вас немного задача с подвохом. Если скрипты обновятся, а база еще нет. То могут быть косяки с сайтом. Потому, я быы сделал следующим образом:
1. git репозиторий (ну или другой системы)
2. В БД таблица или поле в существующей таблице храняще версию БД
3. В репозитории, например, в паке updates складываем список обновленных файлов и скрипты оновления базы
(список измененых файлов git diff --name-only <id_комита>)  Можно конечно и вообще все файлы копировать каждый раз
4. По крону проверяем наличие в папке обновлений
5. если только sql обновлений нет то просто копируем файлы по списку
6. Если есть скрипты. То узнаем текущую версию БД mysql -u username -p userpassword -D basename -e "select version from baseinfo"
7. Парсим SQLскрипты. на преждмет версии обновления. Можно зашить в название, можно необходимы update распарсить или спец примечание придумть.
8. Сранвиваем версию скрипа и вресию бд. Если верися скрипта больше - накатываем mysql -u username -p userpassword -D basename < update001.sql
9. Проверяем не было ли ошибок во время выполнения.
9.1. если не было копируем файлы
9.2. шлем лог адимну на почту, откатываем изменения.

Вот как то так. Такая заготовка
Parent Написал(а) voral Дата 27.11.12 07:40
Хотя обновления на автомате.... Не айс. ИМХО
Предыдущая Следующая Вверх Тема Администрирование / Общее администрирование / Система контроля версий для WEB разработки. (20598 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.600s with 10 database queries.