SlideShare a Scribd company logo
1 of 98
Download to read offline
Database Version Control Without Pain




                                                    Harrie Verveer
                          PHPNW10 - Manchester - 9th October 2010


zaterdag 9 oktober 2010
Oh hai!



                          Harrie Verveer
                          aka Hairy

                          Dutchy
                          I live in Goes, which probably
                          sounds awkward to you

                          Software engineer at
                          ibuildings since 2004
                          Vlissingen (Flushing) office

                                                           2
zaterdag 9 oktober 2010
zaterdag 9 oktober 2010
zaterdag 9 oktober 2010
zaterdag 9 oktober 2010
zaterdag 9 oktober 2010
zaterdag 9 oktober 2010
zaterdag 9 oktober 2010
“Yeah, don’t get bogged down in trying to be
                    funny. Be yourself and present the info.”



zaterdag 9 oktober 2010
Sorry, this talk won’t be
                                    funny



                                                      9
zaterdag 9 oktober 2010
Database Version Control
                          What’s the problem?




                                                     10
zaterdag 9 oktober 2010
http://www.sxc.hu/photo/1207911
zaterdag 9 oktober 2010
zaterdag 9 oktober 2010




                          http://en.wikipedia.org/wiki/File:STS120LaunchHiRes.jpg
http://www.flickr.com/photos/kt/1217157/
zaterdag 9 oktober 2010
http://www.sxc.hu/photo/1255121




zaterdag 9 oktober 2010
Why Database Version Control




                                       15
zaterdag 9 oktober 2010
Simple Patching Strategy
                          The basic idea




                                                     16
zaterdag 9 oktober 2010
Simple patching strategy




                                   17
zaterdag 9 oktober 2010
Example patch file

          patch-001.sql




                             18
zaterdag 9 oktober 2010
http://www.sxc.hu/photo/314594
zaterdag 9 oktober 2010
Simple patching strategy

                                           Development
                                                 Write code
                                             Write DB patches
                                          Apply patches to own DB




                          Apply patches                             Commit




                                               Update


                                                                             20
zaterdag 9 oktober 2010
Fixing patches

          patch-002.sql




                          21
zaterdag 9 oktober 2010
Fixing patches

          patch-002.sql




                          21
zaterdag 9 oktober 2010
Fixing patches

          patch-002.sql




                          21
zaterdag 9 oktober 2010
Fixing patches

          patch-003.sql




                          22
zaterdag 9 oktober 2010
Fixing patches

          patch-003.sql




                          Never modify a patch file once
                            it’s under version control


                                                           22
zaterdag 9 oktober 2010
Undo patch files

          undo-001.sql




                           23
zaterdag 9 oktober 2010
http://www.freefoto.com/preview/41-07-7
zaterdag 9 oktober 2010
Bonus points




                          Install.sql




                                        25
zaterdag 9 oktober 2010
Bonus points




                          Initial dummy content




                                                  26
zaterdag 9 oktober 2010
http://www.sxc.hu/photo/643214
zaterdag 9 oktober 2010
http://www.sxc.hu/photo/946855
zaterdag 9 oktober 2010
Automating the process
                          Faster & Safer




                                                   29
zaterdag 9 oktober 2010
Typical patch script




                               30
zaterdag 9 oktober 2010
Typical patch script

          update.sh




                               31
zaterdag 9 oktober 2010
Branches
                          Merge problems




                                           32
zaterdag 9 oktober 2010
Branches
          Trunk
                          patch-001.sql

                          patch-002.sql


                          patch-003.sql




                                          33
zaterdag 9 oktober 2010
Branches
          Trunk
                          patch-001.sql

                          patch-002.sql


                          patch-003.sql
                                               Branch A
                               create branch

                          patch-004.sql
                                                     patch-004.sql
                          patch-005.sql

                                                     patch-005.sql
                                   Merge




                                                                     34
zaterdag 9 oktober 2010
Branches
          Trunk
                          patch-001.sql

                          patch-002.sql


                          patch-003.sql
                                               Branch A
                               create branch

                          patch-004.sql
                                                                     patch-006.sql
                                                     patch-004.sql
                          patch-005.sql
                                                                     patch-007.sql
                                                     patch-005.sql
                                   Merge




                                                                                     34
zaterdag 9 oktober 2010
Branches
         Trunk
                    patch-001.sql                              Branch A
                                          create branch
                    patch-002.sql

                                                                     patch-002.sql
                    patch-003.sql
                                          Branch B
                          create branch
                                                                     patch-003.sql
                              Merge

                                                    patch-004.sql    patch-004.sql
                    patch-004.sql
                                                    patch-005.sql

                    patch-005.sql                      Merge


                                                                     patch-005.sql
                                                       Merge
                             Merge


                                                                                     35
zaterdag 9 oktober 2010
Separate sequence

          db/patches/trunk/   db/patches/branchA/

          patch-001.sql       patch-001.sql
          patch-002.sql       patch-002.sql
          patch-003.sql




                                                    36
zaterdag 9 oktober 2010
Separate sequence

          db/patches/trunk/           db/patches/branchA/

          patch-001.sql               patch-001.sql
          patch-002.sql               patch-002.sql
          patch-003.sql


                               Trunk version    3
                              BranchA version   2




                                                            36
zaterdag 9 oktober 2010
Patchfile naming




                          patch_20100611_1430.sql




                                                    37
zaterdag 9 oktober 2010
Patch log




                          38
zaterdag 9 oktober 2010
http://www.sxc.hu/photo/692740
zaterdag 9 oktober 2010
There is no silver bullet
                          Why it can’t exist




                                                      40
zaterdag 9 oktober 2010
http://www.flickr.com/photos/eschipul/4160817135/
zaterdag 9 oktober 2010
Comparing tables


                          Table in DB 1             Table in DB 2
                  column 1            int       column 1        int
                  column 2       varchar(255)   column 2   varchar(255)
                  column 3       varchar(255)   column 4   varchar(255)




                                                                          42
zaterdag 9 oktober 2010
Comparing tables


                            Table in DB 1            Table in DB 2
                           id           int         id           int
                          name     varchar(255)    name     varchar(255)
                          city     varchar(255)   website   varchar(255)




                                                                           43
zaterdag 9 oktober 2010
Comparing tables


                            Table in DB 1             Table in DB 2
                           id           int          id           int
                  firstname         varchar(255)   firstname   varchar(255)
                          lname    varchar(255)   lastname   varchar(255)




                                                                            44
zaterdag 9 oktober 2010
To synchronize two database
                     structures without unexpected
                    dataloss, communicating all steps
                      needed to get from A to B is
                                inevitable.



                                                        45
zaterdag 9 oktober 2010
Phing & DB Deploy




                                              46
zaterdag 9 oktober 2010
Phing & DB Deploy




                          Cartoon by Oliver Widder - http://geekandpoke.typepad.com/   47
zaterdag 9 oktober 2010
http://phing.info/




                                               48
zaterdag 9 oktober 2010
Phing




                          49
zaterdag 9 oktober 2010
50
zaterdag 9 oktober 2010
DB Deploy




                          51
zaterdag 9 oktober 2010
Phing & DB Deploy




                            52
zaterdag 9 oktober 2010
DB Deploy

          db/patches/1-create_user_table.sql




                                               53
zaterdag 9 oktober 2010
DB Deploy

          changelog table:




                             54
zaterdag 9 oktober 2010
DB Deploy

          changelog table:




                             54
zaterdag 9 oktober 2010
DB Deploy




                          PHP




                                55
zaterdag 9 oktober 2010
DB Deploy




                          SQL




                                56
zaterdag 9 oktober 2010
DB Deploy




                          Features




                                     57
zaterdag 9 oktober 2010
Liquibase
                          The most complete solution I know




                                                              58
zaterdag 9 oktober 2010
Liquibase




                          www.liquibase.org




                                              59
zaterdag 9 oktober 2010
Liquibase




                          60
zaterdag 9 oktober 2010
Liquibase




                          61
zaterdag 9 oktober 2010
Liquibase




                          62
zaterdag 9 oktober 2010
Liquibase

                Updating
                Reverting
                Tagging
                Generate XML
                Diff




                               63
zaterdag 9 oktober 2010
http://www.sxc.hu/photo/1241520
zaterdag 9 oktober 2010
Liquibase




                          Branches




                                     65
zaterdag 9 oktober 2010
Liquibase




                          DBMS Support




                                         66
zaterdag 9 oktober 2010
Liquibase




                          Documentation




                                          67
zaterdag 9 oktober 2010
Liquibase




                          Java




                                 68
zaterdag 9 oktober 2010
Akrabat DB Schema Manager
                          Zend Framework specific solution




                                                             69
zaterdag 9 oktober 2010
Akrabat DB Schema Manager

                Zend Framework
                Proposed by Rob Allen in 2006
                Recently implemented
                Might be in ZF in the near future

          http://github.com/akrabat/Akrabat




                                                    70
zaterdag 9 oktober 2010
Akrabat DB Schema Manager

                Zend Framework
                Proposed by Rob Allen in 2006
                Recently implemented
                Might be in ZF in the near future
                Might not be in ZF in the near future as well

          http://github.com/akrabat/Akrabat




                                                                71
zaterdag 9 oktober 2010
Writing the patch

          scripts/migrations/001-CreateUserTable.php




                                                       72
zaterdag 9 oktober 2010
Writing the patch

          scripts/migrations/001-CreateUserTable.php




                                                       73
zaterdag 9 oktober 2010
Akrabat DB Schema Manager




                          PHP Patches




                                        74
zaterdag 9 oktober 2010
Akrabat DB Schema Manager




                          Easy syntax if you know ZF




                                                       75
zaterdag 9 oktober 2010
Akrabat DB Schema Manager




                          Easy to install, easy to use




                                                         76
zaterdag 9 oktober 2010
Akrabat DB Schema Manager




                          Easy to install, easy to use




                                                         76
zaterdag 9 oktober 2010
Akrabat DB Schema Manager




                          Branch merging




                                           77
zaterdag 9 oktober 2010
Doctrine Migrations
                          Doctrine ORM specific solution




                                                           78
zaterdag 9 oktober 2010
Doctrine Migrations




                          http://www.doctrine-project.org/




                                                             79
zaterdag 9 oktober 2010
Doctrine Migrations Patch




                                    80
zaterdag 9 oktober 2010
Doctrine Migrations




                          Update-to-version
                              ./doctrine migrate




                                                   81
zaterdag 9 oktober 2010
YAML




                          82
zaterdag 9 oktober 2010
YAML




                          ./doctrine generate-migrations-diff




                                                                82
zaterdag 9 oktober 2010
Doctrine Migrations




                              83
zaterdag 9 oktober 2010
Doctrine Migrations




                          Generate patches




                                             84
zaterdag 9 oktober 2010
Doctrine Migrations




            Useful if you’re already using Doctrine
                              ORM




                                                      85
zaterdag 9 oktober 2010
Summary




                                    86
zaterdag 9 oktober 2010
Summary

                Patchfiles                        Akrabat DB Schema Manager
                                                  http://akrabat.com
                • Automating
                                                  http://github.com/akrabat/Akrabat
                • Branch merging
                • Why there is no silver bullet
                                                  Doctrine Migrations
                                                  http://www.doctrine-project.org
                Phing + DB Deploy
                http://phing.info
                http://dbdeploy.com


                Liquibase
                http://www.liquibase.org




                                                                                      87
zaterdag 9 oktober 2010
Questions ?




                                        88
zaterdag 9 oktober 2010
Contact me

          Harrie Verveer
          Software Engineer at Ibuildings


          E-mail:
          harrie@ibuildings.nl


          Skype:
          harrie-ibuildings


          Twitter:
          @harrieverveer




                          http://joind.in/2056
                                                 89
zaterdag 9 oktober 2010

More Related Content

Viewers also liked

walkmod: how it works
walkmod: how it workswalkmod: how it works
walkmod: how it workswalkmod
 
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Alan Pinstein
 
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeedContinuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeedAxel Fontaine
 
Road to database automation: database source control
Road to database automation: database source controlRoad to database automation: database source control
Road to database automation: database source controlEduardo Piairo
 
Database Source Control: Migrations vs State
Database Source Control: Migrations vs StateDatabase Source Control: Migrations vs State
Database Source Control: Migrations vs StateEduardo Piairo
 
Flyway (33rd Degree)
Flyway (33rd Degree)Flyway (33rd Degree)
Flyway (33rd Degree)Axel Fontaine
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlCoimbra JUG
 
Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...All Things Open
 
Database migration with flyway
Database migration  with flywayDatabase migration  with flyway
Database migration with flywayJonathan Holloway
 
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der DatenbankmigrationstoolsJavaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der DatenbankmigrationstoolsStephan Kaps
 
Liquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsLiquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsAndrei Solntsev
 
Database Schema Evolution
Database Schema EvolutionDatabase Schema Evolution
Database Schema EvolutionLars Thorup
 
Database migrations with Flyway and Liquibase
Database migrations with Flyway and LiquibaseDatabase migrations with Flyway and Liquibase
Database migrations with Flyway and LiquibaseLars Östling
 
Data quality and data profiling
Data quality and data profilingData quality and data profiling
Data quality and data profilingShailja Khurana
 

Viewers also liked (17)

walkmod: how it works
walkmod: how it workswalkmod: how it works
walkmod: how it works
 
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
 
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeedContinuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
 
Road to database automation: database source control
Road to database automation: database source controlRoad to database automation: database source control
Road to database automation: database source control
 
Database Source Control: Migrations vs State
Database Source Control: Migrations vs StateDatabase Source Control: Migrations vs State
Database Source Control: Migrations vs State
 
Flyway (33rd Degree)
Flyway (33rd Degree)Flyway (33rd Degree)
Flyway (33rd Degree)
 
Database versioning with liquibase
Database versioning with liquibaseDatabase versioning with liquibase
Database versioning with liquibase
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under Control
 
Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...
 
Flyway
FlywayFlyway
Flyway
 
Database migration with flyway
Database migration  with flywayDatabase migration  with flyway
Database migration with flyway
 
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der DatenbankmigrationstoolsJavaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
 
Liquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsLiquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOps
 
Database Schema Evolution
Database Schema EvolutionDatabase Schema Evolution
Database Schema Evolution
 
Database security issues
Database security issuesDatabase security issues
Database security issues
 
Database migrations with Flyway and Liquibase
Database migrations with Flyway and LiquibaseDatabase migrations with Flyway and Liquibase
Database migrations with Flyway and Liquibase
 
Data quality and data profiling
Data quality and data profilingData quality and data profiling
Data quality and data profiling
 

Similar to Database version control without pain - the PHPNW10 version

Derailed chef update-oct2010
Derailed chef update-oct2010Derailed chef update-oct2010
Derailed chef update-oct2010jtimberman
 
Chef in the cloud [dbccg]
Chef in the cloud [dbccg]Chef in the cloud [dbccg]
Chef in the cloud [dbccg]jtimberman
 
Advanced Data Widgets and Server Integration
Advanced Data Widgets and Server IntegrationAdvanced Data Widgets and Server Integration
Advanced Data Widgets and Server IntegrationSencha
 
PLNOG 5: Adam Jacob - Choose your own PLNOGventure
PLNOG 5: Adam Jacob - Choose your own PLNOGventurePLNOG 5: Adam Jacob - Choose your own PLNOGventure
PLNOG 5: Adam Jacob - Choose your own PLNOGventurePROIDEA
 
Sharing content between hippo and solr
Sharing content between hippo and solrSharing content between hippo and solr
Sharing content between hippo and solrJettro Coenradie
 
Agile Enterprise Devops and Cloud - Interop 2010 NYC
Agile Enterprise Devops and Cloud - Interop 2010 NYCAgile Enterprise Devops and Cloud - Interop 2010 NYC
Agile Enterprise Devops and Cloud - Interop 2010 NYCChef Software, Inc.
 
Metacello
MetacelloMetacello
MetacelloESUG
 
Opscode Lightning Talk - Operations as Code
Opscode Lightning Talk - Operations as CodeOpscode Lightning Talk - Operations as Code
Opscode Lightning Talk - Operations as CodeJohn Willis
 
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
2010-06 - a smalltalk about salesforce.com with java architects at YaJuGYves Leblond
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Matt Aimonetti
 
Compiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKitCompiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKitSencha
 
The Tech Side of Project Argo
The Tech Side of Project ArgoThe Tech Side of Project Argo
The Tech Side of Project ArgoWesley Lindamood
 
Creating OpenSocial Apps
Creating OpenSocial AppsCreating OpenSocial Apps
Creating OpenSocial AppsBastian Hofmann
 
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptSencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptDavid Kaneda
 
3. cloudcamp lt
3. cloudcamp lt3. cloudcamp lt
3. cloudcamp ltOpsCamp
 
Operations as Code
Operations as CodeOperations as Code
Operations as CodeOpsCamp
 

Similar to Database version control without pain - the PHPNW10 version (20)

OpenDj Fossa2011
OpenDj Fossa2011OpenDj Fossa2011
OpenDj Fossa2011
 
Life after sun solaris death - open dj - fossa2011
Life after sun solaris death - open dj - fossa2011Life after sun solaris death - open dj - fossa2011
Life after sun solaris death - open dj - fossa2011
 
Derailed chef update-oct2010
Derailed chef update-oct2010Derailed chef update-oct2010
Derailed chef update-oct2010
 
Chef in the cloud [dbccg]
Chef in the cloud [dbccg]Chef in the cloud [dbccg]
Chef in the cloud [dbccg]
 
Advanced Data Widgets and Server Integration
Advanced Data Widgets and Server IntegrationAdvanced Data Widgets and Server Integration
Advanced Data Widgets and Server Integration
 
PLNOG 5: Adam Jacob - Choose your own PLNOGventure
PLNOG 5: Adam Jacob - Choose your own PLNOGventurePLNOG 5: Adam Jacob - Choose your own PLNOGventure
PLNOG 5: Adam Jacob - Choose your own PLNOGventure
 
Html5 Development
Html5 DevelopmentHtml5 Development
Html5 Development
 
Sharing content between hippo and solr
Sharing content between hippo and solrSharing content between hippo and solr
Sharing content between hippo and solr
 
Agile Enterprise Devops and Cloud - Interop 2010 NYC
Agile Enterprise Devops and Cloud - Interop 2010 NYCAgile Enterprise Devops and Cloud - Interop 2010 NYC
Agile Enterprise Devops and Cloud - Interop 2010 NYC
 
Metacello
MetacelloMetacello
Metacello
 
Opscode Lightning Talk - Operations as Code
Opscode Lightning Talk - Operations as CodeOpscode Lightning Talk - Operations as Code
Opscode Lightning Talk - Operations as Code
 
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
 
Compiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKitCompiling and Optimizing Your Own Browser with WebKit
Compiling and Optimizing Your Own Browser with WebKit
 
The Tech Side of Project Argo
The Tech Side of Project ArgoThe Tech Side of Project Argo
The Tech Side of Project Argo
 
Creating OpenSocial Apps
Creating OpenSocial AppsCreating OpenSocial Apps
Creating OpenSocial Apps
 
Oper
OperOper
Oper
 
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScriptSencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
Sencha Touch beta — Amazing Mobile Web Apps with HTML5, CSS3 & JavaScript
 
3. cloudcamp lt
3. cloudcamp lt3. cloudcamp lt
3. cloudcamp lt
 
Operations as Code
Operations as CodeOperations as Code
Operations as Code
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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 WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Database version control without pain - the PHPNW10 version