Thanks Marcus this is very helpful!

Best,
Abhinav

On 8/9/22, 6:26 PM, "Christie, Marcus Aaron" <machr...@iu.edu> wrote:
Hi Abhinav,

I wrote up some notes on making database schema migration scripts here: 
https://github.com/apache/airavata/blob/master/modules/registry/registry-core/README.md

I tried to use OpenJPA's capability to generate schema migration scripts. 
Unfortunately I ran into a lot of issues, and I wouldn't recommend that 
approach.

More recently, with a different project, I've had a lot of success using 
Liquibase to automate generating database schema migration scripts.

One key principle that's important to practice, is Expand/Migrate/Contract. See 
for more information: https://www.martinfowler.com/bliki/ParallelChange.html. 
The idea is to introduce new functionality and migrate all clients to it before 
removing the old functionality.  I've written up a draft of how to apply this 
principle to database migrations, see attached file. But this principle can 
apply to API evolution and deployments as well.


Reply via email to