SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
LiquiBase
Enterprise Edition

Andrei Solntsev
Обо мне
@asolntsev
Agile

Изменение это
просто
должно быть
Database
Изменение - это сложно
● Таблицы
● Живые данные!
Database
Изменение - это сложно
●
●
●
●
●
●
●

Таблицы
Живые данные!
Хранимые процедуры
Pl/Sql пакеты
Materialized views
Триггеры
DB Links
Жизнь ДО liquibase
CREATE TABLE PERSON (
first_name VARCHAR2(16),
last_name VARCHAR2(16)
);
Жизнь ДО liquibase
CREATE TABLE PERSON (
first_name VARCHAR2(16),
middle_name VARCHAR2(2),
last_name VARCHAR2(16)
);
Жизнь ДО liquibase
CREATE TABLE PERSON (
first_name VARCHAR2(32),
middle_name VARCHAR2(32),
last_name VARCHAR2(32)
);
Решение:
маленькие шаги
1.sql

CREATE TABLE PERSON
(first_name, last_name)

2.sql

ALTER TABLE PERSON
ADD COLUMN middle_name

3.sql

ALTER TABLE PERSON
DROP COLUMN middle_name
Tools
● DBDeploy
● LiquiBase
● FlyWay

- простота
- мощь
-?

● Ruby migrations
● Play evolutions
● Redgate

- ROR
- Play
- Дорого
LiquiBase: XML
<sqlFile path="1.sql"/>

<sqlFile path="2.sql"/>

<sqlFile path="3.sql"/>
LiquiBase: XML
<changeSet id="1">
<sqlFile path="1.sql"/>
</changeSet>
<changeSet id="2">
<sqlFile path="2.sql"/>
</changeSet>
<changeSet id="3">
<sqlFile path="3.sql"/>
</changeSet>
LiquiBase: XML
<changeSet id="1">
<sqlFile path="1.sql"/>
</changeSet>
<changeSet id="2" runAlways="true">
<sqlFile path="2.sql"/>
</changeSet>
<changeSet id="3">
<sqlFile path="3.sql"/>
</changeSet>
LiquiBase: XML
<changeSet id="1">
<sqlFile path="1.sql"/>
</changeSet>
<changeSet id="2" runAlways="true">
<sqlFile path="2.sql"/>
</changeSet>
<changeSet id="3" runOnChange="true">
<sqlFile path="3.sql"/>
</changeSet>
LiquiBase: XML
<changeSet id="4" dbms="oracle">
<sqlFile path="5.sql"/>
</changeSet>
<changeSet id="5" context="test">
<sqlFile path="5.sql"/>
</changeSet>
<changeSet id="6" failOnError="false">
<sqlFile path="6.sql"/>
</changeSet>
LiquiBase DSL

<changeSet id="1" author="andrei">

<createTable tableName="person">
<column name="id" type="int" autoIncrement="true"/>
<column name="firstname" type="varchar(50)"/>
<column name="lastname" type="varchar(50)"/>
</createTable>
</changeSet>
LiquiBase DSL

<changeSet id="1" author="andrei">

<createTable tableName="person">
<column name="id" type="int" autoIncrement="true"/>
<column name="firstname" type="varchar(50)"/>
<column name="lastname" type="varchar(50)"/>

● IDE autocompletion

</createTable>
</changeSet>

● иногда короче, чем SQL
● работает со всеми базами!
● спец. рефакторинги
Рефакторинги LiquiBase
<changeSet>
<renameColumn
tableName="order_comment"
oldColumnName="author_id"
newColumnName="employee_id"
/>
</changeSet>
А как бы ты
сделал это в Oracle?
Рефакторинги LiquiBase
<modifyDataType
tableName="customer"
columnName="middle_name"
newDataType="VARCHAR2(100)"
/>
Загружаем данные
<changeSet runOnChange="true">
<loadData tableName="CLIENT" file="clt.csv">
<column header="id"
name="ENTITYID"/>
<column header="DESCRIPTION"
name="DESCRIPTION"/>
</loadData>
</changeSet>
Зачем
такие
сложности?
Opa Agile style
● Локальная разработка
○ Oracle XE (нафик dev сервер!)

● Лёгкий запуск
○ ant start

● In-memory DB для тестов
○ ant test
Три базы
1. Oracle

- в боевой

2. Oracle XE

- для разработки

3. H2 in-memory
- для дизайнера
- для демо
- для тестов
Конфигурация в GIT
conf/
dev.properties
db.url=jdbc:oracle:thin:@server1:1521:devdb

local.properties
db.url=jdbc:oracle:thin:@127.0.0.1:1521:xe

inmemory.properties
db.url=jdbc:h2:out/liquibase-ee
Запуск
● ant
● ant -Denv=dev
● ant -Denv=live
● ant start

- запуск демо
ДЕМО

https://github.com/asolntsev/liquibase-ee
Оппозиция
Админы:

хотим видеть SQL!

SQL'щики:

это только для Java

CVS'ники:

у нас есть скрипты
Предпросмотр
ant show-sql
LiquiBase
генерирует,
но
не запускает SQL

Лечит синдром вахтёра у админов
Процедуры
<changeSet runOnChange="true" dbms="oracle">
<sqlFile
path="procedures/log_message.sql"
splitStatements="false"/>
<rollback>
DROP procedure log_message
</rollback>
</changeSet>
Простяшки
Мои любимые - где есть
“CREATE OR REPLACE”:
● Процедуры
● Функции
● Пакеты
● VIEW
● Триггеры

<changeSet runOnChange="true">
<sqlFile path="очередной.sql"/>
</changeSet>
Трудняшки
А у кого нет
CREATE OR REPLACE
с ними сложнее
Materialized view

<changeSet id="002">
<sql>
CREATE MATERIALIZED VIEW currency_mv ...
</sql>
</changeSet>
Materialized view
<changeSet id="001" failOnError="false">
<sql>
DROP MATERIALIZED VIEW currency_mv;
</sql>
</changeSet>

<changeSet id="002">
<sql>
CREATE MATERIALIZED VIEW currency_mv ...
</sql>
</changeSet>
Мы счастливы
● Легко менять БД
Мы счастливы
● Легко менять БД
● Jenkins тестирует БД скрипты
Мы счастливы
● Легко менять БД
● Jenkins тестирует БД скрипты
● Дизайнер правит HTML
Мы счастливы
● Легко менять БД
● Jenkins тестирует БД скрипты
● Дизайнер правит HTML
● Админ спит по ночам
Мы счастливы
● Легко менять БД
● Jenkins тестирует БД скрипты
● Дизайнер правит HTML
● Админ спит по ночам
● UI-тесты на localhost
Почитать
Пусть

База служит вам,
а не вы базе
@asolntsev

Спасибо!

Андрей Солнцев
Что осталось за
кадром
Ибо за 40 минут всё успеть нереально. :(
changelog.xml
разбиваем по релизам

<databaseChangeLog>
<include file="changelog_001.xml"/>
<include file="changelog_002.xml"/>
<include file="changelog_003.xml"/>
</databaseChangeLog>
Можно SQL
<changeSet id="201308181029">
<sql>
CREATE TABLE payment (
id NUMBER NOT NULL,
description VARCHAR2(100 CHAR),
url VARCHAR2(500 CHAR),
upd_dttm TIMESTAMP)
</sql>
<rollback>
DROP TABLE payment
</rollback>
</changeSet>
Можно XML
<changeSet>
<addColumn tableName="payment">
<column name="customer_id" type="NUMBER"/>
</addColumn>
<addForeignKeyConstraint
baseTableName="payment"
baseColumnNames="customer_id"
constraintName="payment_customer_fk"
referencedTableName="customer"
referencedColumnNames="id"/>
</changeSet>
Что-то только для Oracle
<changeSet dbms="oracle">
<createSequence
sequenceName="order_file_id_seq"/>
</changeSet>
Materialized view
<changeSet dbms="oracle">
<sql>
CREATE MATERIALIZED VIEW currency_mv
REFRESH COMPLETE
as select * from (select * from
currency_xa_pos2@${db.dblink.core})
</sql>
<rollback>
DROP MATERIALIZED VIEW currency_mv;
</rollback>
</changeSet>
Refresh Mat View
<changeSet dbms="oracle">
<sqlFile path="mviews/refresh_mv.sql"/>
<rollback><sql>
BEGIN
dbms_refresh.destroy('CUR_GRP');
END;
</sql></rollback>
</changeSet>
Refresh Mat View
<changeSet dbms="oracle">
<sqlFile path="mviews/refresh_mv.sql"/>
<rollback><sql>
BEGIN
dbms_refresh.destroy('CUR_GRP');
END;
</sql></rollback>
</changeSet>
Излишества
1.Author - это есть в GIT
2.Lock

- иногда мешает,
ни разу не помогло

3.IP detection - медленно с VPN

Weitere ähnliche Inhalte

Was ist angesagt?

Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Andrey Akulov
 
RAD на Java: как устроена CUBA Platform?
RAD на Java: как устроена  CUBA Platform?RAD на Java: как устроена  CUBA Platform?
RAD на Java: как устроена CUBA Platform?Aleksey Stukalov
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsMax Klymyshyn
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеAlex Tumanoff
 
Oracle Database 12c: Новые возможности Oracle 12c
Oracle Database 12c: Новые возможности Oracle 12cOracle Database 12c: Новые возможности Oracle 12c
Oracle Database 12c: Новые возможности Oracle 12cAndrey Akulov
 
"Alasql.js — база данных SQL на JavaScript" — Андрей Гершун, MoscowJS 18
"Alasql.js — база данных SQL на JavaScript" — Андрей Гершун, MoscowJS 18"Alasql.js — база данных SQL на JavaScript" — Андрей Гершун, MoscowJS 18
"Alasql.js — база данных SQL на JavaScript" — Андрей Гершун, MoscowJS 18MoscowJS
 
Референсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCРеференсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCAndrew Mayorov
 
AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)
AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)
AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)Andrey Gershun
 
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...Омские ИТ-субботники
 
Alasql.js - SQL сервер на JavaScript
Alasql.js - SQL сервер на JavaScriptAlasql.js - SQL сервер на JavaScript
Alasql.js - SQL сервер на JavaScriptAndrey Gershun
 
Alasql - база данных SQL на JavaScript (MoscowJS)
Alasql - база данных SQL на JavaScript (MoscowJS)Alasql - база данных SQL на JavaScript (MoscowJS)
Alasql - база данных SQL на JavaScript (MoscowJS)Andrey Gershun
 
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...CUBRID
 
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"GeeksLab Odessa
 

Was ist angesagt? (16)

Введение в Oracle
Введение в OracleВведение в Oracle
Введение в Oracle
 
JSTL
JSTLJSTL
JSTL
 
JDBC
JDBCJDBC
JDBC
 
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
 
RAD на Java: как устроена CUBA Platform?
RAD на Java: как устроена  CUBA Platform?RAD на Java: как устроена  CUBA Platform?
RAD на Java: как устроена CUBA Platform?
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.js
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
 
Oracle Database 12c: Новые возможности Oracle 12c
Oracle Database 12c: Новые возможности Oracle 12cOracle Database 12c: Новые возможности Oracle 12c
Oracle Database 12c: Новые возможности Oracle 12c
 
"Alasql.js — база данных SQL на JavaScript" — Андрей Гершун, MoscowJS 18
"Alasql.js — база данных SQL на JavaScript" — Андрей Гершун, MoscowJS 18"Alasql.js — база данных SQL на JavaScript" — Андрей Гершун, MoscowJS 18
"Alasql.js — база данных SQL на JavaScript" — Андрей Гершун, MoscowJS 18
 
Референсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCРеференсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVC
 
AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)
AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)
AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)
 
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
 
Alasql.js - SQL сервер на JavaScript
Alasql.js - SQL сервер на JavaScriptAlasql.js - SQL сервер на JavaScript
Alasql.js - SQL сервер на JavaScript
 
Alasql - база данных SQL на JavaScript (MoscowJS)
Alasql - база данных SQL на JavaScript (MoscowJS)Alasql - база данных SQL на JavaScript (MoscowJS)
Alasql - база данных SQL на JavaScript (MoscowJS)
 
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
 
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
 

Andere mochten auch

Liquidating database frustrations with liquibase
Liquidating database frustrations with liquibaseLiquidating database frustrations with liquibase
Liquidating database frustrations with liquibasePaul Churchward
 
Liquibase få kontroll på dina databasförändringar
Liquibase   få kontroll på dina databasförändringarLiquibase   få kontroll på dina databasförändringar
Liquibase få kontroll på dina databasförändringarSqueed
 
Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!Return on Intelligence
 
Liquibase migration for data bases
Liquibase migration for data basesLiquibase migration for data bases
Liquibase migration for data basesRoman Uholnikov
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With LiquibaseTim Berglund
 

Andere mochten auch (6)

Liquidating database frustrations with liquibase
Liquidating database frustrations with liquibaseLiquidating database frustrations with liquibase
Liquidating database frustrations with liquibase
 
Liquibase få kontroll på dina databasförändringar
Liquibase   få kontroll på dina databasförändringarLiquibase   få kontroll på dina databasförändringar
Liquibase få kontroll på dina databasförändringar
 
LiquiBase
LiquiBaseLiquiBase
LiquiBase
 
Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!
 
Liquibase migration for data bases
Liquibase migration for data basesLiquibase migration for data bases
Liquibase migration for data bases
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With Liquibase
 

Ähnlich wie Liquibase: Enterprise Edition

Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...Oleg Tsarev
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Ontico
 
Эффективная отладка репликации MySQL
Эффективная отладка репликации MySQLЭффективная отладка репликации MySQL
Эффективная отладка репликации MySQLSveta Smirnova
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Ontico
 
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Ontico
 
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...Andrey Gershun
 
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays
 
Особенности совместной работы Ruby и Oracle
Особенности совместной работы Ruby и OracleОсобенности совместной работы Ruby и Oracle
Особенности совместной работы Ruby и OracleNikita Shilnikov
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
 
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...Viktor Likin
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration managementAlexander Kirillov
 
PostgreSQL. Стильно. Модно. Молодёжно
PostgreSQL. Стильно. Модно. МолодёжноPostgreSQL. Стильно. Модно. Молодёжно
PostgreSQL. Стильно. Модно. МолодёжноVladislav Bezverhiy
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL Badoo Development
 
Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Ontico
 
Вадим Челышов, Scala Engineer : Все ненавидят SBT
Вадим Челышов, Scala Engineer : Все ненавидят SBT Вадим Челышов, Scala Engineer : Все ненавидят SBT
Вадим Челышов, Scala Engineer : Все ненавидят SBT Provectus
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationAlexey Lesovsky
 
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned Alexander Syrotenko
 
Обзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов OracleОбзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов OracleBAKOTECH
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQLBadoo Development
 

Ähnlich wie Liquibase: Enterprise Edition (20)

Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
 
Эффективная отладка репликации MySQL
Эффективная отладка репликации MySQLЭффективная отладка репликации MySQL
Эффективная отладка репликации MySQL
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
 
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
 
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
AlaSQL библиотека для обработки JavaScript данных (презентация для ForntEnd 2...
 
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нём
 
Особенности совместной работы Ruby и Oracle
Особенности совместной работы Ruby и OracleОсобенности совместной работы Ruby и Oracle
Особенности совместной работы Ruby и Oracle
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
 
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration management
 
PostgreSQL. Стильно. Модно. Молодёжно
PostgreSQL. Стильно. Модно. МолодёжноPostgreSQL. Стильно. Модно. Молодёжно
PostgreSQL. Стильно. Модно. Молодёжно
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
 
Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)
 
Вадим Челышов, Scala Engineer : Все ненавидят SBT
Вадим Челышов, Scala Engineer : Все ненавидят SBT Вадим Челышов, Scala Engineer : Все ненавидят SBT
Вадим Челышов, Scala Engineer : Все ненавидят SBT
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming Replication
 
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
 
Обзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов OracleОбзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов Oracle
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQL
 

Mehr von Andrei Solntsev

Тройничок: Selenide для Web, Android и iOS
Тройничок: Selenide для Web, Android и iOSТройничок: Selenide для Web, Android и iOS
Тройничок: Selenide для Web, Android и iOSAndrei Solntsev
 
Flaky tests. Метод.
Flaky tests. Метод. Flaky tests. Метод.
Flaky tests. Метод. Andrei Solntsev
 
Батл: Тесты или не тесты?
Батл: Тесты или не тесты?Батл: Тесты или не тесты?
Батл: Тесты или не тесты?Andrei Solntsev
 
Как получить чёрный пояс по программированию
Как получить чёрный пояс по программированиюКак получить чёрный пояс по программированию
Как получить чёрный пояс по программированиюAndrei Solntsev
 
Selenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euSelenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euAndrei Solntsev
 
What is master @ SeleniumConf 2015
What is master @ SeleniumConf 2015What is master @ SeleniumConf 2015
What is master @ SeleniumConf 2015Andrei Solntsev
 
Liquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsLiquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsAndrei Solntsev
 
Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Andrei Solntsev
 
Bullshit driven development
Bullshit driven developmentBullshit driven development
Bullshit driven developmentAndrei Solntsev
 
Good test = simple test (with selenide)
Good test = simple test (with selenide)Good test = simple test (with selenide)
Good test = simple test (with selenide)Andrei Solntsev
 
The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16Andrei Solntsev
 
The fast and the continuous (SeleniumCamp 2014)
The fast and the continuous (SeleniumCamp 2014)The fast and the continuous (SeleniumCamp 2014)
The fast and the continuous (SeleniumCamp 2014)Andrei Solntsev
 
Static website-generators
Static website-generatorsStatic website-generators
Static website-generatorsAndrei Solntsev
 
Android (Devclub.eu, 30.03.2010)
Android (Devclub.eu, 30.03.2010)Android (Devclub.eu, 30.03.2010)
Android (Devclub.eu, 30.03.2010)Andrei Solntsev
 
Functional Programming Dev Club 2009 - final
Functional Programming Dev Club 2009 - finalFunctional Programming Dev Club 2009 - final
Functional Programming Dev Club 2009 - finalAndrei Solntsev
 
Evolutionary Database Design
Evolutionary Database DesignEvolutionary Database Design
Evolutionary Database DesignAndrei Solntsev
 

Mehr von Andrei Solntsev (20)

Тройничок: Selenide для Web, Android и iOS
Тройничок: Selenide для Web, Android и iOSТройничок: Selenide для Web, Android и iOS
Тройничок: Selenide для Web, Android и iOS
 
Flaky tests. Метод.
Flaky tests. Метод. Flaky tests. Метод.
Flaky tests. Метод.
 
Батл: Тесты или не тесты?
Батл: Тесты или не тесты?Батл: Тесты или не тесты?
Батл: Тесты или не тесты?
 
Как получить чёрный пояс по программированию
Как получить чёрный пояс по программированиюКак получить чёрный пояс по программированию
Как получить чёрный пояс по программированию
 
Selenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euSelenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.eu
 
What is master @ SeleniumConf 2015
What is master @ SeleniumConf 2015What is master @ SeleniumConf 2015
What is master @ SeleniumConf 2015
 
Liquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsLiquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOps
 
Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)
 
Bullshit driven development
Bullshit driven developmentBullshit driven development
Bullshit driven development
 
Good test = simple test (with selenide)
Good test = simple test (with selenide)Good test = simple test (with selenide)
Good test = simple test (with selenide)
 
The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16
 
The fast and the continuous (SeleniumCamp 2014)
The fast and the continuous (SeleniumCamp 2014)The fast and the continuous (SeleniumCamp 2014)
The fast and the continuous (SeleniumCamp 2014)
 
Static website-generators
Static website-generatorsStatic website-generators
Static website-generators
 
Extreme banking
Extreme bankingExtreme banking
Extreme banking
 
Kiss.devclub ee.est
Kiss.devclub ee.estKiss.devclub ee.est
Kiss.devclub ee.est
 
Real-life unit tests
Real-life unit testsReal-life unit tests
Real-life unit tests
 
WTF Code @ jug.lv
WTF Code @ jug.lvWTF Code @ jug.lv
WTF Code @ jug.lv
 
Android (Devclub.eu, 30.03.2010)
Android (Devclub.eu, 30.03.2010)Android (Devclub.eu, 30.03.2010)
Android (Devclub.eu, 30.03.2010)
 
Functional Programming Dev Club 2009 - final
Functional Programming Dev Club 2009 - finalFunctional Programming Dev Club 2009 - final
Functional Programming Dev Club 2009 - final
 
Evolutionary Database Design
Evolutionary Database DesignEvolutionary Database Design
Evolutionary Database Design
 

Liquibase: Enterprise Edition