There are a lot of tools which allows us automate deployment process for databases.
Those tools could be divided into two big groups:
#1. Tools that uses general purpose language (Ruby, C#, Java, Python) for writing migration scripts.
#2. Tools that uses SQL language for writing migration scripts.
First group of tools gives for developers productive gain but leaves database administrator completely out of development process which is really bad idea.
Second set of tools requires a lot of additional work - every single change should be written as separate database patch. This slows down our work => make it more expensive.
Oblivious solution is to create the third set of tools... or at least just one which would be friendly to both DBAs and DEVs.
What about auditors? They should be happy too!
JavaScript завтра / Сергей Рубанов (Exante Limited)Ontico
За последние несколько лет в мире js-разработки особое внимание получили такие проекты как AtScript, TypeScript, SoundScript, Flow, Traceur, Babel, каждый из которых пытается предоставить разработчикам некую "улучшенную" версию JavaScript. Комитет TC39 также стал очень активен и разработал стратегию развития стандарта ECMAScript с более частыми релизами. Движки JavaScript стремительно приближаются к полной поддержке ES6. Огромное количество JS-фреймворков и библиотек выбирают следующую версию стандарта уже сегодня. Это означает, что необходимо уже сегодня обратить внимание на происходящее в мире JavaScript-разработки и разобраться, что ждет язык завтра.
В своем докладе я постараюсь дать ответы на следующие вопросы:
- почему такие фреймворки и библиотеки как Angular, Ember, React начали активно и кардинально меняться;
- почему новая версия стандарта языка ES6 так долго внедряется вендорами браузеров и как TC39 решил ускорить процесс стандартизации и внедрения последующих версий ECMAScript;
- почему CoffeeScript больше не "just JavaScript", и действительно ли он сделал такой значимый вклад в следующую версию JavaScript;
- почему были созданы AtScript, TypeScript, Flow, чем каждый из них отличается от остальных, и как они влияют на дальнейшее развитие JavaScript;
- что такое Strong Mode и SoundScript;
- как начать писать ES6+ код уже сегодня.
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...IT-Portfolio
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагрузкой, в поисках проблем...", Филипп Дельгядо (CTO Goodwix, ex-teamlead Яндекс.Деньги)
Аннотация
Не так давно с некоторым изумлением узнал, что Java для нагруженных систем представляется совершенной terra incognita. Хотя и совершенно не хочется бороться с мифами, по крайней мере, с удовольствием расскажу, как просто и без хлопот использовать Java в вебе. Про "суровый" highload рассказывать не буду, а вот про простые решения - с удовольствием. Ну и на закуску расскажу, за что я нежно люблю блобы.
О себе
Teamlead сколько себя помню, успел поработать и в "Яндекс.Деньгах" и в "БК Марафон". Люблю простые решения, сложные задачи и хорошую коммуникацию.
JavaScript завтра / Сергей Рубанов (Exante Limited)Ontico
За последние несколько лет в мире js-разработки особое внимание получили такие проекты как AtScript, TypeScript, SoundScript, Flow, Traceur, Babel, каждый из которых пытается предоставить разработчикам некую "улучшенную" версию JavaScript. Комитет TC39 также стал очень активен и разработал стратегию развития стандарта ECMAScript с более частыми релизами. Движки JavaScript стремительно приближаются к полной поддержке ES6. Огромное количество JS-фреймворков и библиотек выбирают следующую версию стандарта уже сегодня. Это означает, что необходимо уже сегодня обратить внимание на происходящее в мире JavaScript-разработки и разобраться, что ждет язык завтра.
В своем докладе я постараюсь дать ответы на следующие вопросы:
- почему такие фреймворки и библиотеки как Angular, Ember, React начали активно и кардинально меняться;
- почему новая версия стандарта языка ES6 так долго внедряется вендорами браузеров и как TC39 решил ускорить процесс стандартизации и внедрения последующих версий ECMAScript;
- почему CoffeeScript больше не "just JavaScript", и действительно ли он сделал такой значимый вклад в следующую версию JavaScript;
- почему были созданы AtScript, TypeScript, Flow, чем каждый из них отличается от остальных, и как они влияют на дальнейшее развитие JavaScript;
- что такое Strong Mode и SoundScript;
- как начать писать ES6+ код уже сегодня.
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...IT-Portfolio
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагрузкой, в поисках проблем...", Филипп Дельгядо (CTO Goodwix, ex-teamlead Яндекс.Деньги)
Аннотация
Не так давно с некоторым изумлением узнал, что Java для нагруженных систем представляется совершенной terra incognita. Хотя и совершенно не хочется бороться с мифами, по крайней мере, с удовольствием расскажу, как просто и без хлопот использовать Java в вебе. Про "суровый" highload рассказывать не буду, а вот про простые решения - с удовольствием. Ну и на закуску расскажу, за что я нежно люблю блобы.
О себе
Teamlead сколько себя помню, успел поработать и в "Яндекс.Деньгах" и в "БК Марафон". Люблю простые решения, сложные задачи и хорошую коммуникацию.
С ростом кодовой базы становится все более очевидной необходимость использования компонентного подхода, когда каждая логическая часть обособлена. Если говорить про JavaScript, то в нем есть области видимости, опираясь на которые можно соорудить изолированные компоненты. Но в CSS нет подобных механизмов, поэтому и придумываются Shadow DOM (Web Components) и различные методики вроде БЭМ.
Но что если взглянуть на проблему под другим углом? Адаптируя подходы, что уже используются для других задач, можно получить куда больше выгоды, чем просто изолированные стили!
Презентация методологии git-flow для стабильной разработки
Текстовая версия: https://medium.com/ruopsdev/git-flow-presentation-b80643390888
Скачать презентацию в формате pptx: https://docs.google.com/presentation/d/1Bgx5GP9ykGYKUnAaD53Y0YIpPpHHSbvT/edit?usp=sharing&ouid=106302903983671723423&rtpof=true&sd=true
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17OdessaFrontend
Если еще несколько лет назад фронтенд это часто был простой и понятный интерфейс между пользователем и бекендом, то на сегодняшний день с учетом обилия фреймворков, либ и все возможных новшеств, фронтенд уже можно считать полноценным отдельным приложение со своей логикой и множеством подводных камней именно по этом сегодня как никогда важно задумываться о том, а как обеспечить простой и понятный процесс тестирования вашего фронта?
Как сделать так чтоб покрытие авто тестами не стало для вас болью или не для вас, но всё еще болью? Дмитрий Хименес обращает ваше внимание на несколько простых моментов, которые стоит учитывать при разработке фронтенда, чтобы сохранить возможность безболезненно сопровождать его автотестами.
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
Последние несколько лет в индустрии активно развивается WebRTC — технология, которая позволяет делать голосовые и видеозвонки прямо из браузеров. Но мало кто знает, что эта же технология может быть использована в нативных мобильных приложениях и основанных на них SDK. В своем докладе я хочу рассказать про опыт заворачивания существующих Android и iOS SDK в React Native:
— Как поддерживать несколько разных архитектур
— Как работать с нативными виджетами, такими как «вывод видео»
— Синхронизация event loop между C-реализацией и — JavaScript движком React Native
— Планы на будущее: React Native WebRTC
«DevOps — это о передаче смысла» — Александр Титов, Express 42DevDay
Текущим определением DevOps является аббревиатура CAMS:
— культура;
— автоматизация;
— измерения;
— распространение знаний.
Для меня это недостаточно понятно, я дополнил эти пункты тем, что DevOps это впервую очередь о передаче смысла без искажений. Я расскажу, как эти мысли соотносятся с методиками прошлого (ITIL, etc), как, используя такой подход, создать набор правил для работы и почему автоматизация — это не всегда хорошо.
Мы посмотрим как инструменты автоматизации помогают передавать смысл изменений между окружениями на примере реальных компонентов и кукбуков и рассмотрим на практике почему bash скрипты более слабый инструмент, чем Opscode Chef.
Совместно разберемся к требованиям к системе мониторинга. Что в системах мониторинга вредит передаче смысла, а что, наоборот, помогает. Какую систему мониторинга выбрать для вашего проекта?
Важность честности и открытости в команде для передачи смысла. Честные публичные пост-мортемы — это не проявление слабости, а проявление уважения к своим пользователям. Как научится делиться информацией друг с другом и не скрывать важного.
Вместе с Алексеем Ашурком мы расскажем о том, как проект «Фламп» релизится по 2n раз в неделю и комфортно себя при этом чувствует:
— Ветки - это хорошо или о переходе с SVN на Git.
— Чем плоха «классическая» модель релизов.
— Что такое модель пофичных релизов, в чём её плюсы и минусы.
— Почему она подходит для веб-сервисов.
— Как идти в ногу со временем или частые деплои.
— Как ловить ошибки и минимизировать их число.
Видео доклада: http://devday.2gis.ru/report/15
Конструктор, позволяющий смоделировать и реализовать процессы согласования любой сложности и с любым количеством участников при помощи простых настроек.
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...Валерий Павлович Сысик
Анонс:
Многие знают как повысить эффективность конкретной команды.
А когда команд 50?
Клинчи, дедлоки и ожидания, управление «срочным» на ручном приводе - частые спутники больших компаний.
Как в компании Петер-Сервис боролись за согласованность работы команд, адекватную орг. структуру и архитектуру, единый ритм выпуска продукции и победили.
Доклад будет интересен представителям компаний, работающих над по настоящему большим продуктом и испытывающим боли от масштаба на себе.
This document describes an XML database migration project that converts existing databases into XML file format. It discusses migrating from an existing single database conversion system to a new system that allows conversion of multiple database types like MS Access and SQL. The new system stores data in XML format as flat files for enhanced security, reduced memory usage and data access speed compared to the existing database system. It outlines the introduction, existing system, proposed improved system, module breakdown, software/hardware requirements and conclusion.
This document graphically demonstrates why database aliases should be used when migrating SQL databases. Aliases allow individual databases on the same SQL instance to be uniquely identified. By creating aliases that point to the same SQL instance but specify different databases, connections can be simplified to reference the alias instead of specifying the instance and database directly. This avoids issues that can occur when an alias only points to the instance without identifying a unique database.
С ростом кодовой базы становится все более очевидной необходимость использования компонентного подхода, когда каждая логическая часть обособлена. Если говорить про JavaScript, то в нем есть области видимости, опираясь на которые можно соорудить изолированные компоненты. Но в CSS нет подобных механизмов, поэтому и придумываются Shadow DOM (Web Components) и различные методики вроде БЭМ.
Но что если взглянуть на проблему под другим углом? Адаптируя подходы, что уже используются для других задач, можно получить куда больше выгоды, чем просто изолированные стили!
Презентация методологии git-flow для стабильной разработки
Текстовая версия: https://medium.com/ruopsdev/git-flow-presentation-b80643390888
Скачать презентацию в формате pptx: https://docs.google.com/presentation/d/1Bgx5GP9ykGYKUnAaD53Y0YIpPpHHSbvT/edit?usp=sharing&ouid=106302903983671723423&rtpof=true&sd=true
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17OdessaFrontend
Если еще несколько лет назад фронтенд это часто был простой и понятный интерфейс между пользователем и бекендом, то на сегодняшний день с учетом обилия фреймворков, либ и все возможных новшеств, фронтенд уже можно считать полноценным отдельным приложение со своей логикой и множеством подводных камней именно по этом сегодня как никогда важно задумываться о том, а как обеспечить простой и понятный процесс тестирования вашего фронта?
Как сделать так чтоб покрытие авто тестами не стало для вас болью или не для вас, но всё еще болью? Дмитрий Хименес обращает ваше внимание на несколько простых моментов, которые стоит учитывать при разработке фронтенда, чтобы сохранить возможность безболезненно сопровождать его автотестами.
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
Последние несколько лет в индустрии активно развивается WebRTC — технология, которая позволяет делать голосовые и видеозвонки прямо из браузеров. Но мало кто знает, что эта же технология может быть использована в нативных мобильных приложениях и основанных на них SDK. В своем докладе я хочу рассказать про опыт заворачивания существующих Android и iOS SDK в React Native:
— Как поддерживать несколько разных архитектур
— Как работать с нативными виджетами, такими как «вывод видео»
— Синхронизация event loop между C-реализацией и — JavaScript движком React Native
— Планы на будущее: React Native WebRTC
«DevOps — это о передаче смысла» — Александр Титов, Express 42DevDay
Текущим определением DevOps является аббревиатура CAMS:
— культура;
— автоматизация;
— измерения;
— распространение знаний.
Для меня это недостаточно понятно, я дополнил эти пункты тем, что DevOps это впервую очередь о передаче смысла без искажений. Я расскажу, как эти мысли соотносятся с методиками прошлого (ITIL, etc), как, используя такой подход, создать набор правил для работы и почему автоматизация — это не всегда хорошо.
Мы посмотрим как инструменты автоматизации помогают передавать смысл изменений между окружениями на примере реальных компонентов и кукбуков и рассмотрим на практике почему bash скрипты более слабый инструмент, чем Opscode Chef.
Совместно разберемся к требованиям к системе мониторинга. Что в системах мониторинга вредит передаче смысла, а что, наоборот, помогает. Какую систему мониторинга выбрать для вашего проекта?
Важность честности и открытости в команде для передачи смысла. Честные публичные пост-мортемы — это не проявление слабости, а проявление уважения к своим пользователям. Как научится делиться информацией друг с другом и не скрывать важного.
Вместе с Алексеем Ашурком мы расскажем о том, как проект «Фламп» релизится по 2n раз в неделю и комфортно себя при этом чувствует:
— Ветки - это хорошо или о переходе с SVN на Git.
— Чем плоха «классическая» модель релизов.
— Что такое модель пофичных релизов, в чём её плюсы и минусы.
— Почему она подходит для веб-сервисов.
— Как идти в ногу со временем или частые деплои.
— Как ловить ошибки и минимизировать их число.
Видео доклада: http://devday.2gis.ru/report/15
Конструктор, позволяющий смоделировать и реализовать процессы согласования любой сложности и с любым количеством участников при помощи простых настроек.
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...Валерий Павлович Сысик
Анонс:
Многие знают как повысить эффективность конкретной команды.
А когда команд 50?
Клинчи, дедлоки и ожидания, управление «срочным» на ручном приводе - частые спутники больших компаний.
Как в компании Петер-Сервис боролись за согласованность работы команд, адекватную орг. структуру и архитектуру, единый ритм выпуска продукции и победили.
Доклад будет интересен представителям компаний, работающих над по настоящему большим продуктом и испытывающим боли от масштаба на себе.
This document describes an XML database migration project that converts existing databases into XML file format. It discusses migrating from an existing single database conversion system to a new system that allows conversion of multiple database types like MS Access and SQL. The new system stores data in XML format as flat files for enhanced security, reduced memory usage and data access speed compared to the existing database system. It outlines the introduction, existing system, proposed improved system, module breakdown, software/hardware requirements and conclusion.
This document graphically demonstrates why database aliases should be used when migrating SQL databases. Aliases allow individual databases on the same SQL instance to be uniquely identified. By creating aliases that point to the same SQL instance but specify different databases, connections can be simplified to reference the alias instead of specifying the instance and database directly. This avoids issues that can occur when an alias only points to the instance without identifying a unique database.
Борис Трофимов. Continuous Database migration-это просто!Volha Banadyseva
This document discusses techniques for continuous database migration. It introduces Carbon5, an open source database migration framework. Carbon5 works by having each schema change stored as a separate SQL script file. It tracks which changes have been applied to prevent duplicate executions. The document contrasts Maven-driven and embedded modes of using Carbon5. With Maven-driven, migrations run as Maven goals; with embedded, a bean handles migrations on application startup. Best practices discussed include feature-based script organization and avoiding direct database changes outside the framework. Alternatives like Flyway and NoSQL migration approaches are also briefly covered.
This document summarizes Phinx, a PHP database migration tool. It allows developers to programmatically update a database schema over time through migrations written in PHP. Key features include writing migrations, migrating up and down, seeding data, and supporting multiple databases like MySQL, PostgreSQL, and SQLite. The document provides installation instructions, best practices for writing migrations, and an overview of the tool's history and future plans.
This document discusses various database migration processes between different database systems. It provides step-by-step instructions for migrating databases from SQL Server 2014 to Oracle 11g, Oracle 11g to SQL Server 2014, SQL Server 2008R2 to MySQL, DB2 to Sybase SQL Anywhere 16, and PostgreSQL to SQL Server 2012. It also briefly discusses migrating between SQL Server 2008 and SQL Server 2012. Each migration process is followed by a verification section to check that the data was migrated correctly.
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Tanya Denisyuk
"Контейнеры могут динамически появляться и исчезать, являются легковесными, не резервируют все необходимые ресурсы при старте, потому их оркестрация дается не простой ценой. Каждый из виртуальных контейнеров в один момент времени может потребовать максимум доступных ему ресурсов и это может привести к тому, что закончатся все ресурсы на физическом сервере, на котором они размещаются. В докладе мы поговорим о механизме, который решает эту непростую задачу, и умеет проводить непрерывную балансировку нагрузки, перемещать контейнеры с одного физического сервера на другие для проведения технических работ без простоя приложений - умная живая миграция (Smart Live Migration).
Многие считают, что контейнеры не подходят для хранения важных данных, т.к. в любой момент они могут упасть и все данные пропадут навсегда. Мы расскажем как этого избежать с помощью технологии Software-defined-storage."
Database migration simple, cross-engine and cross-platform migrations with ...Amazon Web Services
Learn how you can migrate databases with minimal downtime from on-premises and Amazon EC2 environments to Amazon RDS, Amazon Redshift, Amazon Aurora and EC2 databases using AWS Database Migration Service. We'll discuss homogeneous (e.g. Oracle-to-Oracle, PostgreSQL-to-PostgreSQL, etc.) and heterogeneous (e.g. Oracle to Aurora, SQL Server to MariaDB) database migrations. We'll also talk about the new AWS Schema Conversion Tool that saves you development time when migrating your Oracle and SQL Server database schemas, including PL/SQL and T-SQL procedural code, to their MySQL, MariaDB and Aurora equivalents. Best of all, we'll spend most of the time demonstrating the product and showing use cases designed to help your business.
Database migration is the process of transferring data between different database systems or upgrades. It involves analyzing and mapping data from the source to the target system, transforming the data, validating data quality, and maintaining the migrated data. For example, Capital One migrated from Oracle to Teradata databases as their data volume grew too large for Oracle to efficiently handle. The migration process includes pre-migration planning, extraction, transformation, data loading, validation, and post-migration maintenance.
Tree-like data relationships are common, but working with trees in SQL usually requires awkward recursive queries. This talk describes alternative solutions in SQL, including:
- Adjacency List
- Path Enumeration
- Nested Sets
- Closure Table
Code examples will show using these designs in PHP, and offer guidelines for choosing one design over another.
Database-Migration and -Upgrade with Transportable TablespacesMarkus Flechtner
This document discusses using transportable tablespaces (TTS) to migrate a large telecommunications database from HP-UX to Linux with an Oracle upgrade. Key points:
- The customer has 4 databases totaling over 15TB that need to be migrated with downtime under 6 hours. TTS was chosen for the migration.
- Tuning efforts included resizing files, compression, and parallelizing file transfers and conversions across RAC nodes.
- Challenges included long metadata export times. The issue was addressed by splitting exports across multiple self-contained tablespace subsets in parallel.
- Automation scripts were created to coordinate the distributed migration work across RAC nodes.
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
– Кому нужна командная разработка?
– Что делать в команде?
– Решение реальных задач, распределение ответственности
– Командная разработка на 1С-Битрикс
– Миграции БД
– Проблемы и пути их решения
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
1. Проблемы в построении CI процессов в компании
2. Структура типовой сборки
3. Пример реализации типовой сборки
4. Плюсы и минусы от использования типовой сборки
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
то такое "Непрерывная Интеграция", зачем она нужна и с чем ее едят? Правда ли, что она нужна только для тестировщиков? На все эти вопросы мы постараемся найти ответы в ходе выступления Щербакова Ильи на нашей следующей юзер-группе.
2. Попробуем найти ответы на следующие вопросы:
➲ Зачем нужно автоматизировать процесс релиза
изменений в БД?
➲ Зачем нужна изоляция personal / dev / test / staging
/ production окружений?
➲ Зачем нужен continious integration процесс?
(сломал-увидел-починил)
➲ Как сделать процесс внесения изменений в
структуру БД предсказуемым?
➲ Как полноценно включить БД в continious
integration процесс?
➲ Как поддерживать синхронизацию приложения и
БД на всех окружениях?
9. Модель слияния «под релиз»
(ad hoc merging model)
➲ Эта модель разработки позволяет небольшим командам разработчиков
вносить изменения в одну и ту же целевую БД, при этом каждый из них
работает со своим изолированным экземпляром БД.
➲ Поскольку разработчики работают с личной БД они могут проводить отладку
своих изменений в изоляции.
➲ Не нужно вносить никаких ручных правок. Достаточно по завершению
разработки фичи сделать diff между рабочей и целевой БД и получить SQL с
изменениями.
➲ Велика вероятность конфликтов слияния изменений, поскольку разработчики
синхронизируют свои изменения с одной и той же целевой БД. Если
разработчики внесут изменения в один и тот же объект, о велика вероятность
что эти изменения будут бесследно потеряны во время синхронизации.
➲ Повышаются требования по координации слияний в целевую БД, их
периодичность должна быть адекватна интенсивности вносимых изменений.
➲ Нет управления версиями на уровне объектов БД. Если был обнаружен баг, то
становится очень сложно определить что именно привело к его возникновению.
Кроме того операция отката БД на предыдущую версию без ручного
вмешательства будет означать потерю всех изменений текущего релиза.
10.
11. Версионировние и слияние на уровне объектов
схемы БД
➲ Каждый индивидуальный объект схемы БД наховится в виде отдельного скрипта
в системе контроля версий, что позволяет прослеживать историю изменений
конкретного объекта.
➲ Разработчики как и в предыдущей модели работают напрямую с живой БД, что
упрощает отладку изменений.
➲ Можно использовать некоторые возможности системы контроля для управления
проектом. Например во время коммита оставлять комментарии и прочую
информацию на уровне отдельных объектов схемы БД.
➲ Можно устанавливать блокировку изменений на уровне отдельных скриптов во
время внесения изменений, если данные возможности есть у системы контроля
версий.
➲ В случае параллельной разработки конфликты слияний разрешаются намного
проще за счет того что изменения носят мелкодисперсный характер.
➲ Использование этой модели накладывает большую дисциплинированность и
более формальный подход, что может быть неудобно разработчикам, которые
работают в более динамичном режиме.
13. Оффлайн модель разработки
➲ Прямое редактирование скриптов, которые находятся под системой
контроля версий в некоторых случаях может быть преимуществом (привет
унылым клиентам TFS, VSS).
➲ Этот процесс уменьшает вероятность одновременного редактирования
одного и того же скрипта в большей степени чем в предыдущей модели.
➲ Продвинутые SQL diff-инструменты типа SQL Compare 6 Professional
автоматически определяет последовательность выполнения этих скриптов на
целевой БД принимая во внимание их связи.
➲ Отсутствует немедленная проверка изменений, поскольку они вначале должны
быть внесены в скрипт, а уже потом на тестовую БД.
➲ Для того чтобы проверить изменения их нужно применить к тестовой БД, что
добавляет дополнительный шаг.
15. RoundhousE db versioning tools
(part of the ChuckNorrisFramework)
➲ Name: Chuck Norris
➲ Email:
chucknorrisframework@googlegroups.co
m
➲ Website:
http://groups.google.com/group/chucknor
risframework
➲ Location: Chuck is everywhere
➲ Project: https://github.com/chucknorris/
roundhouse
16. Основные возможности RoundhousE
➲ Поддерживает Microsoft SQL Server, Oracle,
Access
➲ MySQL объявлен как alpha (моя реализация,
которая была обкатана на проекте
TravelConfirm)
➲ Заявлена поддержка PostgreSQL, SQLite
➲ Использует SQL для миграций БД
➲ Рализована на .NET, использует NHibernate
(могу портировать на другую СУБД или на
Mono/Linux/Mac OS X)
➲ Open source, лицензирована под Apache 2.0
17. Уникальные возможности RoundhousE
➲ Обладает достаточно умным поведением
➲ В большей степени дружественна к DBA чем другие SQL-
based миграторы
➲ Освобождает от написания патчей/миграций для stateless
скриптов
➲ Все скрипты разделяет на OneTime, AnyTime, Everytime
➲ Поддерживает скрипты, которые зависят от окружения
➲ Крайне рекомендована проектам с большим количеством
процедур, функций и представлений
➲ Вместо одного каталога со свалкой миграций их несколько
— baseline, up, functions, procedures, functions
➲ Подробное логирование процесса миграции БД
➲ Подробная регистрация успешных и неудачных миграций
18. Running RoundhousE v0.8.0.305 against (local) - TestRoundhousE.
Looking in C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousE for
scripts to run.
Please press enter when ready to kick...
==================================================
Setup, Backup, Create/Restore/Drop
==================================================
Creating TestRoundhousE database on (local) server if it doesn't exist.
==================================================
RoundhousE Structure
==================================================
Running database type specific tasks.
Creating RoundhousE schema if it doesn't exist.
Creating [Version] table if it doesn't exist.
Creating [ScriptsRun] table if it doesn't exist.
Creating [ScriptsRunErrors] table if it doesn't exist.
==================================================
Versioning
==================================================
Attempting to resolve version from
C:coderoundhousecode_dropsampledeployment_BuildInfo.xml using //buildInfo/version.
Found version 0.8.0.305 from C:coderoundhousecode_dropsampledeployment_BuildInfo.xml.
Migrating TestRoundhousE from version 0 to 0.8.0.305.
Versioning TestRoundhousE database with version 0.8.0.305 based on
http://roundhouse.googlecode.com/svn.
19. ==================================================
Migration Scripts
==================================================
Looking for Update scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEup". These
should be one time only scripts.
--------------------------------------------------
Running 0001_CreateTables.sql on (local) - TestRoundhousE.
Running 0001_CreateTables_NH.sql on (local) - TestRoundhousE.
Running 0002_ChangeTable.sql on (local) - TestRoundhousE.
Running 0003_TestBatchSplitter.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for Run First After Update scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousErunFirstAfte
rUp".
--------------------------------------------------
--------------------------------------------------
Looking for Function scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEfunctions".
--------------------------------------------------
Running ufn_GetDate.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for View scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEviews".
--------------------------------------------------
Running vw_Dude.sql on (local) - TestRoundhousE.
--------------------------------------------------
20. Looking for Stored Procedure scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEsprocs".
--------------------------------------------------
Running usp_GetDate.sql on (local) - TestRoundhousE.
Running usp_SelectTimmy.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for Run after Other Anytime Scripts scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousErunAfterOt
herAnyTimeScripts".
--------------------------------------------------
Running createFiveItems.sql on (local) - TestRoundhousE.
--------------------------------------------------
Looking for Permission scripts in
"C:coderoundhousecode_dropsampledeployment..dbSQLServerTestRoundhousEpermissions
". These scripts will run every time.
--------------------------------------------------
Running 0001_AppRole.sql on (local) - TestRoundhousE.
Running 0002_AppReadOnlyRole.sql on (local) - TestRoundhousE.
Running 0003_AppPermissionsWiring.sql on (local) - TestRoundhousE.
LOCAL.GrantRobDataReaderDataWriterPermissions.ENV.sql is an environment file. We are in the
LOCAL environment. This will run based on this check.
Running LOCAL.GrantRobDataReaderDataWriterPermissions.ENV.sql on (local) - TestRoundhousE.
TEST.GrantRobDataReaderDataWriterPermissions.ENV.sql is an environment file. We are in the
LOCAL environment. This will NOT run based on this check.
Skipped TEST.GrantRobDataReaderDataWriterPermissions.ENV.sql - No changes were found to run.