• 0

    Дополню пару слов про третий вариант.
    Мы используем https://github.com/db-migrate/node-db-migrate. Это аналог упомянутых инструментов на node.js. Умеет работать из коробки с mysql, postgresql, sqlite3 и mongodb.


    Из плюсов:


    • Миграции можно писать как в js файлах используя ORM, так и в sql файлах
    • Есть scopes. То есть можно сделать несколько областей (dev, prod, test) и раскидать все миграции по соответствующим скоупам. Это дает возможность в каждом окружении запускать только необходимые миграции.

    Из минусов:


    • нет pre- и post- скриптов. Но это не так критично.

    В итоге, у нас работа построена следующим образом:


    • Мы активно используем хранимки, в коде приложений нет никаких запросов, только вызов хранимок.
    • Всё, что касается БД (и структуру и хранимки) разрабатывают программисты БД.
    • Каждый разработчик БД внося изменения в структуру базы, сам пишет небольшую миграцию (это довольно удобно, у db-migrate есть cli, который подготавливает для вас костяк, остаётся только заполнить 2 sql файла с миграцией вверх и вниз)
    • У нас 2 репозитория касательно БД: в одном живёт вся структура с нуля, статические справочники и все хранимки (по одному файлу на каждую сущность, будь то таблица, вьюха, хранимка и прочее), в другом живут только миграции.
    • Дальше у нас руками написан небольшой шелл скриптик, который подготавливает оба варианта развертывания базы для продакшн.
    • В итоге, если БД разворачивается с нуля — используется один скрипт, если же происходит обновление существующей БД, то накатываются только отсутствующие миграции и перенакатываются хранимки (ну просто потому что хранимки завязаны на структуру таблиц и нет смысла их держать в миграциях, а проще после накатить актуальные сразу, которые точно будут консистентны со структурой)

    Как-то так, если вкратце.

    Подходы к версионированию изменений БД
  • –1
    Вот это да!!! Охренеть! Прям открыли глаза на такие полезные инструменты! А то мужики-то все напрямую в бинарных файлах базы всё правят и не знают про /* Подставить любой из вышеперечисленных инструментов */
    Простите, не сдержался :) Понедельник — день тяжелый!)
    Топ инструментов разработки для PostgreSQL
  • +4
    Кстати, про Symfony Workflow Component Алексей Медведев делал доклад на девятой встрече SymfoniacsMSK! Вот видео
    PHP-Дайджест № 98 – интересные новости, материалы и инструменты (28 ноября – 11 декабря 2016)
  • 0
    Народ, а покажите какие-нибудь реальные примеры API, описанных в RAML? И сгенерированные html'ки тоже было бы интересно увидеть.
    И Самый главный вопрос: как поддерживать актуальность RAML-спецификаций и кода, который этот самый API реализует? Насколько я понял, надо только ручками после изменений апишки править RAML…
    RAML 1.0: обзор нововведений
  • +2
    Ну а для тех, кто хочет послушать про Котлин уже сейчас, буквально на днях я записал SDCast с Андреем Бреславом: https://sdcast.ksdaemon.ru/2016/03/sdcast-41/ :)
    [Москва] Встреча с разработчиками Kotlin
  • +1
    Кстати, про Tarantool, почему LUA, новый вид апп-серверов на базе nginx и tarantool'а и прочее мы общались с Костей Осиповым у меня в SDCast'е #20: sdcast.ksdaemon.ru/2015/03/sdcast-20
    Строим сервисы на базе Nginx и Tarantool
  • +1
    В Ratchet используется WAMP v1. Он уже считается устаревшим. Для v2, как верно заметил pronskiy надо юзать Thruway
    Почему одного AJAX недостаточно: протокол WAMP
  • +1
    Ну коли пошла такая пьянка, скажу про 3 моих реализации WAMP'а:
    • Wapmy.js — JS клиент для браузера
    • Wiola — Роутер на Lua на базе Nginx
    • Loowy — клиент на LUA

    А еще есть слайды с моего выступления на MoscowJS: «Пара слов про WAMP».
    Вдруг кому-то пригодится.
    Почему одного AJAX недостаточно: протокол WAMP
  • +2
    Честно говоря, вообще не согласен. У меня есть опыт перевода разного рода документации на маркдаун. При чем тех людей, которые никогда не были программистами. И они вполне себе освоились. И уж это точно проще, чем писать тэги html.
    Если интересно, вот моя заметка по этому поводу: Вы все еще пишете ТЗ в Word? — Тогда мы идем к Вам!
    Документирование программ
  • –2
    Да, как-то много очень неприятных ляпов в заметке. Это расстраивает.
    Документирование программ
  • +3
    Кажется это баловство… Но студентам-стажерам можно подарить, как стимул и шпаргалку два-в-одном
    Идея для подарка коллегам: кружка веб-разработчика
  • +7
    АА!!! Книжка про FreeBSD!!! У меня есть такая! :)
    Плюсы и минусы работы в сфере IT, если ты девушка
  • 0
    Спасибо! Да, есть мысли и эту тему затронуть.
    SDCast. Подкаст о разработке ПО и его окрестностях
  • +1
    Кстати, вопрос: как вы учитываете вопрос временных трудозатрат? Одно дело, это оценка времени выполнения задачи постановщиком (менеджером, или ведущим разработчиком), другое — что скажет конечный исполнитель? И опять же, очень хочется понимать, сколько реально времени тратится на те или иные задачи, чтобы накапливать статистику и в дальнейшем иметь возможность пользоваться ей для более точных (адекватных) прогнозов. Есть возможность указывать временные трудозатраты прям в коммит-сообщениях, но даже это программисты нифига не делают. Да, можно требовать принудительно проставления, но это тоже не всегда верно/нужно…
    Жизненный цикл задач в Redmine для небольшой группы разработки. Наш опыт и полезные советы
  • 0
    Интересная и познавательная статья. Мы тоже используем у себя связку redmine+gitlab, но несколько с другим подходом. Кому интересно, подробнее можно прочитать вот тут: blog.ksdaemon.ru/2014/02/v-poiskakh-optimalnykh-sredstv-soprovozhdeniya-razrabotki-chast-tretya-schaste-blizko/

    Понравилась идея с «Как проверить». Но у нас основополагающий документ — это ТЗ. И соответственно, тестировщики проверяют продукт на соответствие ТЗ. И если это не так — то или правится ТЗ под существующие реалии, либо правится софт, чтобы соответствовал ТЗ. Кстати, именно по ТЗ, тестировщики пишут тест-кейсы, которые так же фигурируют в задачах/багах.
    Жизненный цикл задач в Redmine для небольшой группы разработки. Наш опыт и полезные советы
  • +7
    В продакшне — конечно же строго: serv1, gw2, db3 и т.д.
    А для разработческого небольшого зоопарка, конечно же творчески.
    У меня вот, например, серверы называются именами птиц/прочих летающих тварей: falcon, hawk, firefly, eagle и т.д. Скажешь, что БД на firefly'е и всем сразу все понятно.
    Называем узлы сети: где черпать вдохновение?
  • 0
    Клёвая идея! Надо будет поиграться на досуге.
    Разработка для Microsoft SQL Server: Unix way
  • –1
    Те, кто ни разу не был, но очень хочет, могут перейти по указанной ссылке и прочитать что там написано ;)
    Приглашаем на Moscow JavaScript Meetup 26 июня
  • 0
    Забавненько, а почему бы и нет. Хотя вообще для таких целей вероятнее всего нужен какой-ньть BPEL/SOA, на котором строится бизнес-логика.
    PL/SQL решение для работы с Веб-Службами
  • +4
    А я раньше просто брал playtools и делал себе FF жизней и играл. Кстати, у меня на даче еще жива моя 80386SX4, и там стоит Prehistorik 1 & 2 и еще куча легендарных игрушек, типа Golden Axe и я иногда их запускаю :)
    Кидхак Prehistorik 2: анлочим уровни
  • +3
    cp default_site_skeleton.conf my_brand_new_site.conf
    vim my_brand_new_site.conf
    :%s/skel_site_name/new_site_name/g
    :wq
    service httpd restart
    не вариант?)
    Быстрое создание виртуальных хостов Apache при помощи bash скрипта
  • +6
    Я чего-то не понял: вся статья про то, как увеличить размер буфера в nginx?
    Наш опыт оптимизации nginx для раздачи видео-контента
  • 0
    Всячески плюсую за то, что нашлись и желание и силы все это реализовать и поддерживать. Здорово!
    Карты для всех, даром
  • 0
    Что-то вы такое странное говорите… Во-первых, в гите есть submodules и subtree, если вы имеете в виду возможность работать с поддеревом одного большого проекта, как с отдельным компонентом, собственно для этого они и были придуманы. Во-вторых, если у вас и вправду бАльшое дерево, то переключение между ветками в SVN/CVS — это просто мука, долго и медленно. Впрочем, это вполне очевидные недостатки… Да и вообще, я не нашел ни одного плюса у svn по сравнению с git/hg. Но это, как говорится, уже совсем другая история. :)
    Наглядное представление активности коммитов SVN в терминале
  • +4
    А что, кто-то еще юзает svn?))

    П.С. Ладно-ладно. Это была шутка. Понятно что есть куча легаси-кода и народу просто лень переводить все на git/hg. Но в любом случае, ни разу не было потребности увидеть активность коммитов в терминале…
    Наглядное представление активности коммитов SVN в терминале
  • +1
    боятся хабраэффекта )))
    Как подобрать SSL-сертификат
  • +2
    В Тоаде есть такая штука как PL/SQL Code Analysis. Там тоже показываются ошибки, предложения и замечания.
    Вот видео про эту фичу.
    + В самом оракле 11g есть такая штука как PL/Scope. С помощью нее можно изучать код на предмет определения используемых переменных, местах вызовов и зависимостей. Подробнее можно прочитать у xtender, тут.
    Проверь свой T-SQL код!
  • 0
    Отлично! Знаю про такие штуки для оракла, а для мс-скуля как-то не встречал. Спасибо за инфу.
    Проверь свой T-SQL код!
  • 0
    Посмотрел с удовольствием! Было интересно и любопытно. Спасибо!
    Документальный фильм «Тим Кук. Гениальный руководитель легендарной компании»
  • 0
    Хорошая подборочка!
    Бесплатные книги по JavaScript
  • 0
    Это конечно хорошо. НО лишняя проверка, даже две в каждом скрипте. А если у вас высоконагруженный проект? Не айс.
    Профилирование и отладка php-приложений с помощью xhprof & FirePHP
  • 0
    не знаю конечно зачем, ну ладно, сделал.
    Профилирование и отладка php-приложений с помощью xhprof & FirePHP
  • 0
    Нууу не совсем согласен с вами. Да, профилирование php, но вывод всего этого дела в браузере, а точнее в консоль firefox/firebug. Так что все-таки тут не только php.
    Профилирование и отладка php-приложений с помощью xhprof & FirePHP
  • 0
    упс :) да. Ну тут получилось более наглядно. А по поводу дива с ссылкой — оно конечно удобнее, но, например, у нас в приложении большинство запросов — это ajax-запросы. А переписывать еще и js-логику не хотелось. Но там где можно — да, такой див будет удобен.
    Профилирование и отладка php-приложений с помощью xhprof & FirePHP
  • +1
    эй! А где наш карточный домик?!
    .toster: Javascript supportato!
  • +3
    Тогда и вас с днем рождения! :)
    С Днём Рождения, Хабр!
  • 0
    Ну да, в стандартный репозиторий не входит, но собственно а должен ли? У оракла специально место это так и называется: Free and Open Source Software, он же oss.oracle.com, поэтому его можно без проблем подключить и использовать.
    Кстати, при установке этот пакет все проделанные действия пишет в лог, который потом, если интересно, можно посмотреть и увидеть все сделанные изменения. Но зато время он экономит существенно.
    А по вопросу — на всех или не на всех — на всех RHEL-подобных — точно работает. Да и там ведь нет никаких бинарников скомпилированных, там всего лишь правильные скрипты.

    Нуу выдержка — это да, как говорится «до первого апдейта нельзя»…

    Про заметки спасибо, записываем по возможности :)
    Установка Oracle 10g на CentOS 6.2 x64
  • +5
    На дворе 2012 год и на днях уже 12-я версия выйдет, а вы все про десятку рассказываете. Видимо по этой причине вы и не знаете, что есть например замечательный пакет oracle_validated который значительно упрощает процесс установки: он ставит нужные пакеты, конфигурит нужные параметры ядра, создает пользователя oracle. — это все не надо делать ручками.
    Пользуясь случаем пропиарю свои заметки по теме установки и настройки оракла в разных ипостасиях, смотреть тут
    Установка Oracle 10g на CentOS 6.2 x64
  • +2
    Статья — самое то, для моей жены :)
    Краткая инструкция iPhone / iPad для чайников