Talk given at the Dutch Software Industry Conference (SIC) 2016, describing the challenges and potential solutions for dealing with schema changes in an ever changing production environment without affecting dependent services.
just one). • Ensure that both versions of the database schema are compatible with both the current and the next version of the application. How do you deal with this?
just one). • Ensure that both versions of the database schema are compatible with both the current and the next version of the application. That’s not always possible!
just one). • Ensure that both versions of the database schema are compatible with both the current and the next version of the application. This is error-prone, and can require multiple deploys
< NOW() AND returned = false; SELECT * FROM rentals* WHERE customer_id = 2372 AND return_date < NOW() AND returned = false; Accessing the database Rewriting intercepted queries
operations to multiple tables at once. QuantumDB automatically determines the “future state” of the schema, and how to get there without changing the existing tables.
two or more versions of the database schema through a custom JDBC driver. • Allows you to run two or more versions of your service in parallel, each version connected its own schema.
TABLE RENAME TABLE DROP TABLE ADD FOREIGN KEY DROP FOREIGN KEY CREATE INDEX DROP INDEX NOT (YET) SUPPORTED DML STATEMENTS ADD CHECK CONSTRAINT DROP CHECK CONSTRAINT CREATE VIEW DROP VIEW DECOMPOSE TABLE * JOIN TABLE * MERGE TABLE * PARTITION TABLE * * Update Rewriting and Integrity Constraint Maintenance in a Schema Evolution Support System: PRISM++ Supported operations