SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Data Consistency 
Admin Panel vs Migration scripts
About me 
✓ 8 years of web 
development 
✓ 4 years of magento 
development 
✓ CTO in Speroteck 
company
Context 
✓ Web development 
✓ Magento 
✓ Team development (6m+) 
✓ Quality (automation) 
✓ Project (Not Product) development 
✓ Enterprise level in terms of complexity
What is “Application”? 
It’s a Code which receives Input Data, 
produces Output Result and executed on 
particular Environment.
Development (Team) Problems 
Code Consistency - GIT 
Environment Consistency - Vagrant 
Data Consistency - ?
What is Data Consistency? 
Physical meaning. Process of keeping 
information uniform as it moves across a 
network and between various applications. 
Semantic meaning. Process of keeping 
information expected as it moves inside of 
the application.
Data and application context. 
Significant data. 
✓ Configuration data 
✓ Application data 
✓ Input data
What’s the problem? 
1. How to store and share data changes 
between developers? 
2. How to migrate data changes between 
application instances? 
3. How to bind Code Revision and 
Application Data?
Use Case #1 
Given: I am as a Manager of music store 
should see 20 websites of the Artists I work with 
and each Artist should have 4 supported languages 
and Catalogs should be different for each Artist 
When: I go to Admin Panel 
Then: I should be able to manage them
Use Case #2 
Given: I am as a Manager of music store 
When: I go to website of Artist A 
Then: I should see branded design 
and see custom pages “Home”, “About Artist”, 
“Concerts”, “Recent Hits”, “Contacts” 
and see branded banner in the Header 
and see social links of Artist A
Use Case #3 
Given: I am as a Customer of music store 
When: I am on the Product B Page of Artist A website 
Then: I should be able to listen samples 
and buy artist’s sign on the box 
and choose free present 
and choose color of the T-shirt 
and customize logo on the tea-cup 
and see special promotions
Imagine this store 
1. We will use Magento Enterprise 
2. Create 20 websites + 4 store views for 
each website 
3. Create 20 root categories and assign each 
for own website 
4. Add “complex” Product B to Artist A 
5. Set branded design
Reality strikes back 
✓ We work in a Team 
✓ Data changes happens very frequent 
✓ Client wants to see the results 
✓ QA needs stable data to write tests 
✓ . . .
Back to problems 
How to Store and Share 
data changes between 
developers?
Ways to share data changes 
✓ Share database 
✓ $ mysqldump 
✓ Migration scripts
Brutal Bad guys use Shared Database
Bad guys use $ mysqldump
$ mysqldump 
− Easy to use 
− Cheap changes 
+ Manual work 
+ Hard to track 
changes
$ mysqldump workflow 
1. Download recent database 
2. Make data changes 
3. Upload database and mark it as recent
Who use Migration scripts? 
+ Consistent data 
+ Easy to track 
changes 
− Hard to use 
− Conflicts between 
versions* 
− No uninstall 
scripts* 
− No API for 
complex data*
The holy grail of the development 
Deploy application on local environment 
with 1 click, make changes and push them 
to the Development Center
Development Center 
Development Center - infrastructure which 
receives changes as an input and produce 
stable application build as an output
Build. Gather Together. 
1. Prepare Environment 
2. Prepare Code 
3. Load Data 
4. Configure Application 
5. Verify Functionality 
6. Generate Artifacts
Best practices of migrations usage 
1. Create Global package 
2. Use to configure store 
3. Use “data” and “sql” folders right 
4. Write own API to export/import data 
5. Use database profiler to verify data 
6. Be ready to stop usage of migrations
Global package 
✓ Configure store 
✓ Add application data 
✓ Small code changes, 
patches etc. 
✓ Global elements and 
parts 
Example “social links”
Use to configure store 
Use possibility to configure 
store with the help of install 
scripts. Once it will save 
your ass.
Use “data” and “sql” folders right 
“Data” folder is used to add 
content data changes and 
configuration changes 
“Sql” folder is used to add 
database changes
Use “data” and “sql” folders right 
Move to Setup scripts as much 
as possible.
Write own API to export/import data 
✓ Don’t afraid to write 
something like “Email 
templates importer” 
✓ Use Magento API 
✓ Don’t afraid raw SQL 
✓ Use ready to use solutions. 
Example Cms Installer
Use database profiler to verify data
Be ready to throw migrations away
The End 
Questions? 
vovikha@gmail.com

Más contenido relacionado

Similar a Владимир Дубина - Meet Magento Ukraine - Data consistency

Running Data Platforms Like Products
Running Data Platforms Like ProductsRunning Data Platforms Like Products
Running Data Platforms Like Products
VMware Tanzu
 
Nitin_updated_Profile
Nitin_updated_ProfileNitin_updated_Profile
Nitin_updated_Profile
Nitin Saxena
 
Generating Insights from WSO2 API Manager Statistics
Generating Insights from WSO2 API Manager StatisticsGenerating Insights from WSO2 API Manager Statistics
Generating Insights from WSO2 API Manager Statistics
WSO2
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends Analytics
Webtrends
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends Analytics
Webtrends
 
Fri benghiat gil-odsc-data-kitchen-data science to dataops
Fri benghiat gil-odsc-data-kitchen-data science to dataopsFri benghiat gil-odsc-data-kitchen-data science to dataops
Fri benghiat gil-odsc-data-kitchen-data science to dataops
DataKitchen
 
Crystal Reports Review
Crystal Reports ReviewCrystal Reports Review
Crystal Reports Review
Justin R. Rue
 
Sql portfolio admin_practicals
Sql portfolio admin_practicalsSql portfolio admin_practicals
Sql portfolio admin_practicals
Shelli Ciaschini
 

Similar a Владимир Дубина - Meet Magento Ukraine - Data consistency (20)

Content migration for sitecore
Content migration for sitecoreContent migration for sitecore
Content migration for sitecore
 
Strata+hadoop data kitchen-seven-steps-to-high-velocity-data-analytics-with d...
Strata+hadoop data kitchen-seven-steps-to-high-velocity-data-analytics-with d...Strata+hadoop data kitchen-seven-steps-to-high-velocity-data-analytics-with d...
Strata+hadoop data kitchen-seven-steps-to-high-velocity-data-analytics-with d...
 
Running Data Platforms Like Products
Running Data Platforms Like ProductsRunning Data Platforms Like Products
Running Data Platforms Like Products
 
Nitin_updated_Profile
Nitin_updated_ProfileNitin_updated_Profile
Nitin_updated_Profile
 
Resume 10-24-16
Resume 10-24-16Resume 10-24-16
Resume 10-24-16
 
Sps redmond 2014 deck
Sps redmond 2014 deckSps redmond 2014 deck
Sps redmond 2014 deck
 
Generating Insights from WSO2 API Manager Statistics
Generating Insights from WSO2 API Manager StatisticsGenerating Insights from WSO2 API Manager Statistics
Generating Insights from WSO2 API Manager Statistics
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends Analytics
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends Analytics
 
Fri benghiat gil-odsc-data-kitchen-data science to dataops
Fri benghiat gil-odsc-data-kitchen-data science to dataopsFri benghiat gil-odsc-data-kitchen-data science to dataops
Fri benghiat gil-odsc-data-kitchen-data science to dataops
 
ODSC data science to DataOps
ODSC data science to DataOpsODSC data science to DataOps
ODSC data science to DataOps
 
Washington DC DataOps Meetup -- Nov 2019
Washington DC DataOps Meetup   -- Nov 2019Washington DC DataOps Meetup   -- Nov 2019
Washington DC DataOps Meetup -- Nov 2019
 
seven steps to dataops @ dataops.rocks conference Oct 2019
seven steps to dataops @ dataops.rocks conference Oct 2019seven steps to dataops @ dataops.rocks conference Oct 2019
seven steps to dataops @ dataops.rocks conference Oct 2019
 
SEO for Large/Enterprise Websites - Data & Tech Side
SEO for Large/Enterprise Websites - Data & Tech SideSEO for Large/Enterprise Websites - Data & Tech Side
SEO for Large/Enterprise Websites - Data & Tech Side
 
Crystal Reports Review
Crystal Reports ReviewCrystal Reports Review
Crystal Reports Review
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
 
Language Translations for Custom Scoped Applications in ServiceNow
Language Translations for Custom Scoped Applications in ServiceNowLanguage Translations for Custom Scoped Applications in ServiceNow
Language Translations for Custom Scoped Applications in ServiceNow
 
Sql portfolio admin_practicals
Sql portfolio admin_practicalsSql portfolio admin_practicals
Sql portfolio admin_practicals
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
DataOps - The Foundation for Your Agile Data Architecture
DataOps - The Foundation for Your Agile Data ArchitectureDataOps - The Foundation for Your Agile Data Architecture
DataOps - The Foundation for Your Agile Data Architecture
 

Más de Atwix

Más de Atwix (20)

Igor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesIgor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best Practices
 
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
 
Yaroslav Rogoza - Development Environment: Local or Remote?
Yaroslav Rogoza - Development Environment: Local or Remote?Yaroslav Rogoza - Development Environment: Local or Remote?
Yaroslav Rogoza - Development Environment: Local or Remote?
 
Magento 2 performance comparison in different environments by Yaroslav Rogoza...
Magento 2 performance comparison in different environments by Yaroslav Rogoza...Magento 2 performance comparison in different environments by Yaroslav Rogoza...
Magento 2 performance comparison in different environments by Yaroslav Rogoza...
 
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
 
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
 
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
 
Иван Чепурный - Meet Magento Ukraine - Varnish Cache and its usage in the rea...
Иван Чепурный - Meet Magento Ukraine - Varnish Cache and its usage in the rea...Иван Чепурный - Meet Magento Ukraine - Varnish Cache and its usage in the rea...
Иван Чепурный - Meet Magento Ukraine - Varnish Cache and its usage in the rea...
 
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
 
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в MagentoСергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
 
Макс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
Макс Екатериненко - Meet Magento Ukraine - Magento 2 OverviewМакс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
Макс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
 
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещейАлександр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
 
Антон Капля - Meet Magento Ukraine - Кодогенератор в Magento
Антон Капля - Meet Magento Ukraine - Кодогенератор в MagentoАнтон Капля - Meet Magento Ukraine - Кодогенератор в Magento
Антон Капля - Meet Magento Ukraine - Кодогенератор в Magento
 
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possibleАнатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
 
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
 
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
 
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
 
Александр Колб - Meet Magento Ukraine - психология потребления онлайн
Александр Колб - Meet Magento Ukraine - психология потребления онлайнАлександр Колб - Meet Magento Ukraine - психология потребления онлайн
Александр Колб - Meet Magento Ukraine - психология потребления онлайн
 
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с MagentoЕлена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
 
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

Владимир Дубина - Meet Magento Ukraine - Data consistency

  • 1. Data Consistency Admin Panel vs Migration scripts
  • 2. About me ✓ 8 years of web development ✓ 4 years of magento development ✓ CTO in Speroteck company
  • 3. Context ✓ Web development ✓ Magento ✓ Team development (6m+) ✓ Quality (automation) ✓ Project (Not Product) development ✓ Enterprise level in terms of complexity
  • 4. What is “Application”? It’s a Code which receives Input Data, produces Output Result and executed on particular Environment.
  • 5. Development (Team) Problems Code Consistency - GIT Environment Consistency - Vagrant Data Consistency - ?
  • 6. What is Data Consistency? Physical meaning. Process of keeping information uniform as it moves across a network and between various applications. Semantic meaning. Process of keeping information expected as it moves inside of the application.
  • 7. Data and application context. Significant data. ✓ Configuration data ✓ Application data ✓ Input data
  • 8. What’s the problem? 1. How to store and share data changes between developers? 2. How to migrate data changes between application instances? 3. How to bind Code Revision and Application Data?
  • 9. Use Case #1 Given: I am as a Manager of music store should see 20 websites of the Artists I work with and each Artist should have 4 supported languages and Catalogs should be different for each Artist When: I go to Admin Panel Then: I should be able to manage them
  • 10. Use Case #2 Given: I am as a Manager of music store When: I go to website of Artist A Then: I should see branded design and see custom pages “Home”, “About Artist”, “Concerts”, “Recent Hits”, “Contacts” and see branded banner in the Header and see social links of Artist A
  • 11. Use Case #3 Given: I am as a Customer of music store When: I am on the Product B Page of Artist A website Then: I should be able to listen samples and buy artist’s sign on the box and choose free present and choose color of the T-shirt and customize logo on the tea-cup and see special promotions
  • 12. Imagine this store 1. We will use Magento Enterprise 2. Create 20 websites + 4 store views for each website 3. Create 20 root categories and assign each for own website 4. Add “complex” Product B to Artist A 5. Set branded design
  • 13. Reality strikes back ✓ We work in a Team ✓ Data changes happens very frequent ✓ Client wants to see the results ✓ QA needs stable data to write tests ✓ . . .
  • 14. Back to problems How to Store and Share data changes between developers?
  • 15. Ways to share data changes ✓ Share database ✓ $ mysqldump ✓ Migration scripts
  • 16. Brutal Bad guys use Shared Database
  • 17. Bad guys use $ mysqldump
  • 18. $ mysqldump − Easy to use − Cheap changes + Manual work + Hard to track changes
  • 19. $ mysqldump workflow 1. Download recent database 2. Make data changes 3. Upload database and mark it as recent
  • 20. Who use Migration scripts? + Consistent data + Easy to track changes − Hard to use − Conflicts between versions* − No uninstall scripts* − No API for complex data*
  • 21. The holy grail of the development Deploy application on local environment with 1 click, make changes and push them to the Development Center
  • 22. Development Center Development Center - infrastructure which receives changes as an input and produce stable application build as an output
  • 23. Build. Gather Together. 1. Prepare Environment 2. Prepare Code 3. Load Data 4. Configure Application 5. Verify Functionality 6. Generate Artifacts
  • 24. Best practices of migrations usage 1. Create Global package 2. Use to configure store 3. Use “data” and “sql” folders right 4. Write own API to export/import data 5. Use database profiler to verify data 6. Be ready to stop usage of migrations
  • 25. Global package ✓ Configure store ✓ Add application data ✓ Small code changes, patches etc. ✓ Global elements and parts Example “social links”
  • 26. Use to configure store Use possibility to configure store with the help of install scripts. Once it will save your ass.
  • 27. Use “data” and “sql” folders right “Data” folder is used to add content data changes and configuration changes “Sql” folder is used to add database changes
  • 28. Use “data” and “sql” folders right Move to Setup scripts as much as possible.
  • 29. Write own API to export/import data ✓ Don’t afraid to write something like “Email templates importer” ✓ Use Magento API ✓ Don’t afraid raw SQL ✓ Use ready to use solutions. Example Cms Installer
  • 30. Use database profiler to verify data
  • 31. Be ready to throw migrations away
  • 32. The End Questions? vovikha@gmail.com