Ivanovo Linux Users Group - Not logged in
Forum Help Search Login
Previous Next Up Topic Администрирование / Общее администрирование / Система контроля версий для WEB разработки. (20767 hits)
- By hawk Date 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 By hawk Date 29.10.10 07:06
С базой пока идея хранить тектовики в репозитории СКВ, а изменения записывать php скриптом, тогда будут отображаться изменения. Только боюсь без всеми любимого инструмента phpmyadmin, идея эта приведет к нервному срыву прог-ста ))
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - By LOE (Site/forum admin) Date 29.10.10 10:06
Идея такая (речь только про структуру базы-таблиц плюс служебные данные по необходимости).

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

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

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

Ну а в остальном, сайтовый движок (скрипты) должен сам работать с самими данными и предоставлять возможность вносить изменения и удалять данные.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By hawk Date 29.10.10 10:28
Боюсь, что этим вопросом придется озадачится самому, программист как работал в пхпадмине так и будет. Посему, может майсклдампом снимать дампы баз раз в день (или чаще), сравнивать отличия и писать их в третий файл? Будет и бекап и изменения. Или эти дампы пихать в SVN, не знаю в этом случае как будут регистрироваться отличия. Вообще задача думаю не новая, инструмент учета изменений думаю должен идти вместе с поставляемым инструментарием к MySQL например, может это уже есть?
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - By Bercut Date 01.11.10 16:02
я так уж дополню лучче поздно чем через год
вообще все запросы г базенке логируются, и если анналлизировать именно ихь, то биш логи, то тут как раз таки и до дела можно добраться
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - By hawk Date 01.11.10 16:36
Ага, верно, врубал логи, эх и дофига там г.... :-) Оставил только логирование медленных запросов  >3 сек в лог.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent By Bercut Date 03.11.10 12:51
это уж кому что нужно
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent By G0thic Date 26.11.10 17:34
Правильно. Если меняется структура баз, то делается экспорт структуры и дифом изменения сохранять.
Если данные, то transaction log использовать.
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent By hawk Date 23.10.12 08:26
Дополню, для MySQL - Revision Engine пока в альфе.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - By voral Date 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 By voral Date 27.11.12 07:40
Хотя обновления на автомате.... Не айс. ИМХО
Previous Next Up Topic Администрирование / Общее администрирование / Система контроля версий для WEB разработки. (20767 hits)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.074s with 11 database queries.