Database Refactoring with Liquibase

Total Page:16

File Type:pdf, Size:1020Kb

Database Refactoring with Liquibase Database Refactoring with Liquibase Michael Le Feuvre, OnBelay Consulting Agenda • What is Database refactoring • Introducing Liquibase • Liquibase example • Questions OnBelay Consulting 2 Database Refactoring Evolutionary change OnBelay Consulting 3 Traditional approach • Traditional approach to changing the database schema. • Make an appointment to see the DBA. • Plead that you want to add a column to an existing table • DBA considers your request • Decides to grant it but first must update the ER diagram in a horribly expensive Database Architecture and Design tool that maintains a logical data model. The model is then rendered in to a physical model. Great for wall charts. • DBA generates or hand-codes the database changes into SQL scripts. • DBA then updates each database directly that requires the changes. OnBelay Consulting 4 Consequences of traditional approach • Because the overhead in the traditional process is so onerous, many organizations required that database design be done up front so that the database was “ready” for programmers to use. • Database artifacts may not be in source control. • If database objects are in source control they aren’t necessarily in the same repository as the application source code. application code changes and database changes are not committed together in the same commit. • The above process is entirely antithetical to an Agile development process and since the database requirements must be known in advance of starting development • Most organizations manage database changes somewhere between traditional and database refactoring. OnBelay Consulting 5 Database refactoring • Based on the concept of refactoring popularized by Martin Fowler: • described as a “refactoring as a small change to your source code that improves its design without changing its semantics.” (Refactoring, Martin, James, 1999) • Evolutionary approaches to database maintenance have been discussed since the 2000’s. • Database refactoring was first described in “Refactoring Databases: Evolutionary Database Design”, Pramod Sadalage , Scott Ambler, 2006. • Database refactoring advocates an evolutionary approach: make small non-breaking changes to the database as you refactor and extend your code. • Developers must be able to manage their own databases. • Requires a change in DBA mindset. The development team initiates the change in consultation with the DBA. • On of the key requirements in database refactoring is that each developer has his or her own database schema. OnBelay Consulting 6 Traditional vs Database Refactoring • A new feature requires a field to be added to the Employee form. • Traditional Approach • DBA creates a script to alter the table to add the new column • DBA runs the above script to update the developers’ databases • Developers make changes to the application to get the development environment to work again. • If everything appears to be working in Dev then the DBA runs the same scripts into Test and the developers promote their code into test as well. • This approach does not support small incremental and concurrent changes. • Database Refactoring Approach • A developer is responsible for both the application code and database script changes to implement the new feature. • The database script and application code changes are checked in together into the same commit. • Test is updated automatically when the feature is committed and the test environment is ready for testing. OnBelay Consulting 7 Refactoring Categories • Not all database changes have the same impact. • Changes fall into the following categories: • Extending the database • Usually a non-breaking change • Example: Adding a table or a nullable column • Altering the database – possibly non-breaking • Possibly a breaking change. Depends on the data • Example: Changing a nullable column to non-nullable • Altering the database – breaking • These are changes that will require changes in the application and/or existing data. • Example: Renaming a table and or column OnBelay Consulting 8 Refactoring approaches • Handling the Altering Databases categories may require: • Scan of existing data to see if there are any data issues. (making a nullable column non-nullable.) • Dividing the required changes into three parts: • First part extends the database by adding a new table, column etc. • Second part alters or copies data • Third part makes the breaking change • Example changing the name and datatype of an existing column • First part: add new column with new name. • Second part: copy data from old column to new column with any required changes. • Third part: delete the old column OnBelay Consulting 9 Challenges to implementing database refactoring • Source code commit should contain both application and database code changes. • An update script should update the database automatically. • The script should be re-runnable • The script should support concurrent independent changes by different developers. OnBelay Consulting 10 Database refactoring tools • Roll your own • Specific tools from the DB vendor – tend to make changes in place. • Flyway • Liquibase OnBelay Consulting 11 Liquibase is a database refactoring tool supported by the Liquibase under the stewardship of Datical. Liquibase Liquibase Pro is the professional, licensed version that extends Liquibase to support additional http://liquibase.org features such as targeted, database rollback, db source objects, etc. OnBelay Consulting 12 Liquibase features • Supports database refactoring either by: • Current to desired state • Diff the desired state (database one) with current state (database two) and generate change log • Apply the change set to current state (database two) to update to desired state • Evolutionary changes • Start with an initial change set that creates the database schema • Create change sets that alter the current database to the next desired state. • Liquibase supports all major databases and may be customized to support any specific db syntax. • In either case Liquibase uses a database logging table to insure that only missing changes are applied to the target. OnBelay Consulting 13 Running Liquibase • Liquibase is packaged as a java jar application with scripts. • Liquibase may be run from: • command line • Maven, • Gradle, or, • from a Java Spring Boot application. • Example: liquibase update OnBelay Consulting 14 Liquibase Commands • Summary of commands: • generateChangeLog – generate a change log from an existing database. (may be used to move from one DBMS to another.) • diff – compare two databases • diffChangeLog – compare two databases and generate a change log to get from the first to the second. • Update – apply the changes • Snapshot – create a snapshot for use in comparing two databases. (its faster to use a snapshot for one of the databases in the comparison.) • Rollback rollback the changes. OnBelay Consulting 15 Database refactoring with Liquibase • Liquibase supports database refactoring through database change logs. • Each log identifies a specific database change. • Liquibase uses a table in the target database to track what changes have been applied to the database. • Liquibase may also be used to create a new database from a snapshot or update an existing database. • Liquibase supports the ability to rollback a change. • Liquibase supports concurrent development – independent changes may be updated in any order. OnBelay Consulting 16 Targeting multiple databases • Most database changes may be specified generically – Liquibase will generate the appropriate SQL • If specific database syntax is required then Liquibase supports multiple ways of specifying the differences: • Properties for each DBMS • Embedded or file based SQL reference by the change set • Specific database types • For example Column types in changes may be specified by: • Using specific SQL: type=“varchar2(255)” • Generically: BOOLEAN, BLOB, DATE, DATETIME, BIGINT – converted to correct DBMS • Using java types: • Java.sql.Types.VARCHAR(20) – Will be converted to VARCHAR2 for ORACLE OnBelay Consulting 17 Liquibase databaseChangeLog • The DatabaseChangeLog defines what changes must be applied. • May be one large file with all changes but is typically broken into a hierarchy of databaseChangeLogs using includes. • The lowest level databaseChangeLog identifies the changes for one feature. • The change is captured in a ChangeSet – typically one changeSet per file. • Supported formats: • XML • YAML • SQL • JSON OnBelay Consulting 18 Typical Liquibase project • Liquibase is usually set up using master and category databaseChangeLogs that include the specific change logs. • MasterChangeLog.xml • Snapshot.xml • createTables.xml • Create_employee.xml • Changes.xml • Feature_xxx.xml • Create_profession_code_table.xml OnBelay Consulting 19 Typical Liquibase workflow • Developer One: • Create a change log to capture the change you want to make. • Create or modify a parent change log to hold all the changes. • Make programming code changes • Test • Commit to feature branch • Developer Two: • Pull latest changes • Run the Liquibase update script to update the database with Developer One’s changes OnBelay Consulting 20 Liquibase example: Add current profession • Your business product owner has asked you to add a current profession field to the employee form. • The product owner has supplied you with a list of professions including the value ‘UNKNOWN’ to be used in case the current profession is hasn’t been collected. • The current database is being managed using Liquibase change logs. OnBelay
Recommended publications
  • Ssql-Schema-Comparer: Support of Multi-Language Refactoring With
    2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM) sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases Hagen Schink Institute of Technical and Business Information Systems Otto-von-Guericke-University Magdeburg, Germany [email protected] Abstract—Refactoring is a method to change a source-code’s State-of-the-art IDEs provide information about syntactical structure without modifying its semantics and was first intro- changes or errors before integration or runtime tests take duced for object-oriented code. Since then refactorings were effect. Hence, the information can enable software developers defined for relational databases too. But database refactorings must be treated differently because a database schema’s structure to recognize and correct syntactic and some semantic errors defines semantics used by other applications to access the data already during development. We argue that information about in the schema. Thus, many database refactorings may break syntactical changes in database schemes can ease the problems interaction with other applications if not treated appropriately. of database refactoring. We discuss problems of database refactoring in regard to Java In the following we first present two techniques for ac- code and present sql-schema-comparer, a library to detect refac- torings of database schemes. The sql-schema-comparer library cessing a relational database with the programming language is our first step to more advanced tools supporting developers in Java. Then, we describe how database refactoring affects their database refactoring efforts. database access from Java. In Sec. III we give a more general explanation of problems resulting from database refactorings.
    [Show full text]
  • Automated Testing of Database Schema Migrations
    DEGREE PROJECT IN COMPUTER SCIENCE AND ENGINEERING, SECOND CYCLE, 30 CREDITS STOCKHOLM, SWEDEN 2019 Automated Testing of Database Schema Migrations PETER JONSSON KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Automated Testing of Database Schema Migrations PETER JONSSON Master in Computer Science Date: June 28, 2019 Supervisor: Johan Gustavsson Examiner: Elena Troubitsyna School of Electrical Engineering and Computer Science Host company: The Swedish Police Authority Swedish title: Automatiserad testning av databasschemaförändringar iii Abstract Modern applications use databases, and the majority of them are relational databases, which use schemas to impose data integrity constraints. As appli- cations change, so do their databases. Database schemas are changed using migrations. Certain conditions can result in migrations failing in production environments, leading to a broken database state and testing can be problem- atic without accessing production data which can be sensitive. Two migration validation methods were proposed and implemented to au- tomatically reject invalid migrations that are not compatible with the database state. The methods were based on, and compared to, a default method that used Liquibase to structure and perform migrations. The assertion method used knowledge of what a valid state would look like to generate pre-conditions from assertions to verify that the database’s state matched expectations and that the migrations were compatible with a database’s state prior to migra- tion. The schema method, used a copy of the production database’s schema to perform migrations on an empty database in order to test the compatibility of the old and new schemas. 108 test cases consisting of a migration and a database state were used to test all methods.
    [Show full text]
  • LESSQL: an Approach to Deal with Database Schema Changes in Continuous Deployment / Ariel Antony Afonso
    LESSQL: AN APPROACH TO DEAL WITH DATABASE SCHEMA EVOLUTION IN CONTINUOUS DEPLOYMENT ARIEL ANTONY AFONSO LESSQL: AN APPROACH TO DEAL WITH DATABASE SCHEMA EVOLUTION IN CONTINUOUS DEPLOYMENT Dissertation presented to the Graduate Program in Informatics of the Universidade Federal do Amazonas in partial fulfillment of the requirements for the degree of Master in Informatics. Advisor: Altigran Soares da Silva Manaus April 2020 Ficha Catalográfica Ficha catalográfica elaborada automaticamente de acordo com os dados fornecidos pelo(a) autor(a). Afonso, Ariel Antony A257l LESSQL: An approach to deal with Database Schema Changes in Continuous Deployment / Ariel Antony Afonso . 2020 55 f.: il. color; 31 cm. Orientador: Altigran Soares da Silva Dissertação (Ciência da Computação) - Universidade Federal do Amazonas. 1. schema changes. 2. continuous deployment. 3. database decay. 4. query language. I. Silva, Altigran Soares da. II. Universidade Federal do Amazonas III. Título PODER EXECUTIVO MINISTÉRIO DA EDUCAÇÃO INSTITUTO DE COMPUTAÇÃO PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA FOLHA DE APROVAÇÃO " " Dissertação de Mestrado defendida e aprovada pela banca examinadora constituída pelos Professores: - PRESIDENTE Prof - MEMBRO INTERNO - MEMBRO EXTERNO - MEMBRO EXTERNO Manaus, de de 20 Av. Rodrigo Otávio, 6.200 - Campus Universitário Senador Arthur Virgílio Filho - CEP 690-00 - Manaus, AM, Brasil Tel. (092) 3305 1193 E-mail: [email protected] www.ppgi.ufam.edu.br “Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode começar agora e fazer um novo fim.” (Chico Xavier) vii Abstract The adoption of Continuous Deployment (CD) aims at allowing software systems to quickly evolve to accommodate new features. However, structural changes to the database schema are frequent and may incur in systems’ services downtime.
    [Show full text]
  • Icpc - Local Registration System
    ICPC - LOCAL REGISTRATION SYSTEM A Project Presented to the faculty of the Department of Computer Science California State University, Sacramento Submitted in partial satisfaction of the requirements for the degree of MASTER OF SCIENCE in Computer Science by Shiva Kumar Melam FALL 2016 © 2016 Shiva Kumar Melam ALL RIGHTS RESERVED ii ICPC - LOCAL REGISTRATION SYSTEM A Project by Shiva Kumar Melam Approved by: __________________________________, Committee Chair John Clevenger, Ph.D __________________________________, Second Reader Scott Gordon, Ph.D ____________________________ Date iii Student: Shiva Kumar Melam I certify that this student has met the requirements for format contained in the University format manual, and that this project is suitable for shelving in the Library and credit is to be awarded for the project. __________________________, Graduate Coordinator ___________________ Ying Jin, Ph.D. Date Department of Computer Science iv Abstract of ICPC - LOCAL REGISTRATION SYSTEM by Shiva Kumar Melam ICPC (International Collegiate Programming Contest) is a worldwide programming contest organized by ACM (Association for Computing Machinery) every year. Over 40,000 students from over 2500 Universities all around the globe participate in this prestigious competition. It is a team based multi-tier competition which follows the rules formulated by ACM. The competition initially takes place among the local universities and the winners of this contest get selected to the regional level competition. Winners at the regional level contest advance to the world finals. Currently, the ICPC has a web-based registration system only for the regional and world finals Contests. Registration of the contestants/teams who participate in local contests has been a manual process i.e.
    [Show full text]
  • Devops for the Database
    eBOOK DevOps for the Database By Baron Schwartz E-BOOK: DEVOPS FOR THE DATABASE Table of Contents Meet the Author 1 Introduction 2 Who This Book Is For 3 Database DevOps Stories 3 What Is DevOps 6 Database DevOps Capabilities 8 What Kinds of Companies Can Apply DevOps to the Database? 12 Benefits of DevOps for the Database 14 Why Is it Hard to Apply DevOps to the Database? 15 You Can’t Buy DevOps 25 Achieving Continuous Delivery With Databases 27 Schema as Code for Monoliths and Microservices 29 Automating Database Migrations 31 Loosening the Application/Database Coupling 40 Improving Database Observability 44 Democratizing Database Knowledge and Skill 50 Realigning Software Development Teams 55 The Importance of the Second Age of DevOps 60 Your Journey Towards Database DevOps 63 Three Steps on the Journey 68 Acknowledgments 69 E-BOOK: DEVOPS FOR THE DATABASE Meet the Author Baron Schwartz Baron, the founder of VividCortex, is a performance and scalability expert who participates in various database, open-source, and distributed systems communities. He has helped build and scale many large, high-traffic services for Fortune 1000 clients. He has written several books, including O’Reilly’s best-selling High Performance MySQL. Baron has a Computer Science degree from the University of Virginia. page 1 E-BOOK: DEVOPS FOR THE DATABASE Introduction When it comes to the database, some teams innovate faster, break things less, make more money, and have happier humans. I tried to discover what distinguishes the high and low performers. Then, I struggled to find words for it. Eventually, I realized it’s DevOps.
    [Show full text]
  • Develop Modern Applications with Oracle Database
    Develop Modern Applications with Oracle Database How Oracle Database can help you manage data in the software development life cycle and build scalable, secure applications fast. September 09, 2020 | Version 1.00 Copyright © 2020, Oracle and/or its affiliates Public PURPOSE STATEMENT This document provides an overview of Oracle Database features that help developers build applications. It is intended solely to help you assess the business benefits of using Oracle Database and to plan your development projects. INTENDED AUDIENCE This technical brief is for developers building data-driven applications. It assumes familiarity with basic database terms and the software development life cycle. DISCLAIMER This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this confidential material is subject to the terms and conditions of your Oracle software license and service agreement, which has been executed and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced or distributed to anyone outside Oracle without prior written consent of Oracle. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates. This document is for informational purposes only and is intended solely to assist you in planning for the implementation and upgrade of the product features described. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in this document remains at the sole discretion of Oracle.
    [Show full text]
  • Maven Plugin for Defining Sql Schema
    Maven Plugin For Defining Sql Schema Wily Nealy never nerved so synergistically or bowses any lobules crassly. Von is unanchored and job salleeforward pander as seemly not continuously Cyrus labializing enough, grossly is Wallas and misspeaking teleological? forcibly. When Obie encouraged his The library translates to install plugin sql plugin for maven schema update scripts in the maven central character bash shell script This plugin sql schemas that defines no longer pass it is plugins will define custom webapps that. Storing the most common attack in the information regarding their projects using maven for enabling query for this argument passed to relational database. Just defining identifier attribute which would become out all maven plugin for defining sql schema changes made permanent. I am setting up first liquibase maven project told a MySQL DB. Like to sql plugin execution is useful for defining different mechanisms of jdbi provides all for maven defining sql plugin schema? Both catalog and collections have created database plugin schema to apply changes are both. Format A formatter for outputting an XML document with three pre-defined. Configuring the Alfresco Maven plugin Alfresco Documentation. The installation of the MSSQL schema was pure pain there were a turn of plain SQL files which had even be. The maven for defining and define sql schemas for uuid identifier. To load SQL statements when Hibernate ORM starts add an importsql file to the. Setting up and validating your film project Using Maven. The hibernate3-maven-plugin can dash be used to toe a schema DDL from. For maven plugin creates sql schemas, you can become.
    [Show full text]
  • Getting Hip with Jhipster Frederik Hahne, WPS Management Gmbh
    Getting Hip with JHipster Frederik Hahne, WPS Management GmbH Der Scrum-Master Samu hat ein Problem. Er kann und Frameworks, konfiguriert diese nach aktuellen Best Practices nicht noch mehr Funktionen aus dem unterneh- und stellt sicher, dass die verwendeten Technologien reibungslos mensweiten Ticketsystem herausholen. Deshalb miteinander funktionieren. spielt er mit dem Gedanken, eine Web-Anwendung Da Samu für einen Prototyp keine Zeit hat, um sich in die Besonder- zu schreiben, die sich in das bestehende Ticket- heiten von Spring Security einzulesen oder in die Konfiguration von system integriert, sodass er dort spezielle Angular und Webpack einzuarbeiten, gibt er JHipster eine Chance. Er wird mit JHipster die Anwendungen hochfahren und das Datenmo- Anforderungen und Workflows implementieren dell erzeugen, damit er sich auf das Implementieren der Business- kann. Leider liegen seine Tage als Entwickler etwas logik konzentrieren kann. JHipster hilft nicht nur Anfängern, sondern weiter zurück und er hat auch keine Zeit, sich auch erfahrenen Entwicklern, schneller produktiv zu sein [17]. mit dem Schreiben von Boilerplate-Code einer JHipster in Zahlen modernen Web-Anwendung zu befassen. Zum Samu möchte auf einem aktiven und gut gepflegten Projekt auf- Glück erinnert er sich, dass die Java-Entwicklerin bauen, damit er bei Problemen und Fragen schnell Hilfe findet und Jennifer in ihrer Freizeit im JHipster-Projekt aktiv Fehler durch das Team zeitnah behoben werden können, und schaut sich die Historie des Projekts an. JHipster wurde im Jahr 2013 ge- ist. Dieser Artikel begleitet Samu dabei, wie er die startet, seitdem gab es fünf Major-Releases. Die aktuelle Version Möglichkeiten von JHipster erkundet, um einen ist 5.6.1 (November 2018).
    [Show full text]
  • Enhancing Database-Centric Web Applications Through Informed Code Generation
    Utah State University DigitalCommons@USU All Graduate Theses and Dissertations Graduate Studies 8-2017 Database Auto Awesome: Enhancing Database-Centric Web Applications through Informed Code Generation Jonathan Adams Utah State University Follow this and additional works at: https://digitalcommons.usu.edu/etd Part of the Other Computer Sciences Commons Recommended Citation Adams, Jonathan, "Database Auto Awesome: Enhancing Database-Centric Web Applications through Informed Code Generation" (2017). All Graduate Theses and Dissertations. 6265. https://digitalcommons.usu.edu/etd/6265 This Thesis is brought to you for free and open access by the Graduate Studies at DigitalCommons@USU. It has been accepted for inclusion in All Graduate Theses and Dissertations by an authorized administrator of DigitalCommons@USU. For more information, please contact [email protected]. DATABASE AUTO AWESOME: ENHANCING DATABASE-CENTRIC WEB APPLICATIONS THROUGH INFORMED CODE GENERATION by Jonathan Adams A thesis submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in Computer Science Approved: Curtis Dyreson, Ph.D. Minghui Jiang, Ph.D. Major Professor Committee Member Kyumin Lee, Ph.D. Mark R. McLellan, Ph.D. Committee Member Vice President for Research and Dean of the School of Graduate Studies UTAH STATE UNIVERSITY Logan, Utah 2017 ii Copyright c Jonathan Adams 2017 All Rights Reserved iii ABSTRACT Database Auto Awesome: Enhancing Database-Centric Web Applications through Informed Code Generation by Jonathan Adams, Master of Science Utah State University, 2017 Major Professor: Curtis Dyreson, Ph.D. Department: Computer Science Database Auto Awesome is an approach to enhancing in-situ, web-based, relational database applications through informed code generation.
    [Show full text]
  • Artificial Intelligence and Knowledge Engineering
    AUTOMATING SUPPORT FOR REFACTORING SQL DATABASES Jyrki Nummenmaa, Ari Seppi, Peter Thanisch University of Tampere, Department of Computer Sciences, 33014 University of Tampere, Tampere, Finland, [email protected], [email protected], [email protected] Abstract. We present a method to automate at least partly the operations needed to refactor an SQL database in the case where a new schema is designed for an existing SQL database that contains data. We base our database refactoring method on intuitive database design operations, such as normalize and denormalize. Keywords: SQL databases, database maintenance, database refactoring, database evolution. 1 Introduction Relational database design is a much studied and classical problem. Often the relational database model is based on some higher•level conceptual model. Over time, the concepts and the conceptual level model change and there is a need to update the database. There is solid research on how, for example, the database schema evolution should be designed based on an ER schema. However, although there is quite a lot of work on schema evolution, we could not find solid research on how an existing relational (or SQL) database should be re•organised, when there is a need to change the database schema. Our conjecture is that this topic has been neglected because researchers were of the opinion that a viable solution to the problem was to redesign the schema at the entity•relationship model level and to migrate the data to the new schema. However, in many production environments, such an upheaval would not be practical. The practical significance of the approach that we propose derives from the fact that schema changes continue to be necessary even after the database has been populated and is in the production environment.
    [Show full text]
  • Generate Java Code from Database Schema
    Generate Java Code From Database Schema pledgedwhenParlando allodial or Christorpher arms. and fallible chant, Aldrich his waxesanthropogeny some corbeille? gluttonise Aguinaldo idealises fingergood. waveringlyHow vulnerable if unturfed is David Yule At very clean and work as false, a test database queries and java code from database schema scripts to using the facilities The parse tree is database from different databases such cases the appropriate type of the relationships between objects to automatically load xml syntax to use flyway managed controllers or show the jdt. But opting out loud some skill these cookies may express an effect on your browsing experience. So as soon endorse a database schema takes advantage of an advanced DDL feature, schema migration must also use voice and this can only those done through manually created incremental scripts. The name they the haunt is displayed under the Java DB node. If enabled, the tools will reverse engineer the database defined in the connection information in the selected Hibernate Console Configuration, and generate code based on the database schema. XEP, and provides the connection to preserve database. The java classes, developers outside of a commercial database from java code database schema evolution must be projected as false, you are used at some way. Providing a department table in a school, you want all selected all your database table while working of your database from java code database schema from an existing tables. Looks very thin support? To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.
    [Show full text]
  • CI/CD for Oracle Database & APEX Developers
    CI/CD for Oracle Database & APEX Developers RMOUG Virtual Training Days 2021 Brian Spendolini Product Manager Oracle Database Development Tools @btspendo btspendo https://blogs.oracle.com What is CI/CD? 2 Copyright © 2020, Oracle and/or its affiliates What is CI/CD and Why do we need it? CI/CD is continuous integration, continuous delivery, and continuous deployment • Introduces automation into all stages of app/database development • Helps developers work on the same app and merge their code changes back to a shared branch frequently • Development changes are automatically tested on push/commits and merges Why? • Consistency/Repeatability • Accountability • Security • Standardization • Find Issues Faster/Better Code/Quality Releases • More Frequent Releases 3 Copyright © 2020, Oracle and/or its affiliates CI/CD with the database and APEX? Traditionality this has been hard. Why? • APEX/DB bucks the trend of isolated development environments • Dev instances can be expensive • Licensing issues • DB/APEX changes are different from traditional files/code seen with DevOPs and CI/CD processes • Metadata driven • Versioning or lack there of • Rollback issues • Very manual process and a lot of individual accountability • DB change tracking • APEX change tracking • Isn't DevOps for those new-fangled development languages only? 4 Copyright © 2020, Oracle and/or its affiliates CI/CD with the database and APEX? We can fix it? Yes, we can! Centralized code repository no more big zips or wiki pages with attachments Individual code branches Individual
    [Show full text]