-
Notifications
You must be signed in to change notification settings - Fork 427
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Week3: Presentation Proposal #2404
Conversation
Missing student registration :dvavd If not from your group, fetch the upstream. |
Very interesting proposal! I like the problem database migration. My only question about this is that you don't migrate databases that often so I wonder about the purpose of integrating it into CD. But if you can motivate it well, I am more than happy to merge! |
@algomaster99 Thanks! I think it is useful for minor changes as well, say developer A wants to add a new column to a table, so they will alter the database. Developer B might want to make a similar change, but since A already changed the table it will result in a conflict. With Flyway there will be a migration history with all changes and developer B will be aware of the change A made. So while a complete database migration might not be that frequent, I think minor changes to the database are quite common. So I think it is a very useful tool to keep the database consistent. |
Based on your use-case, it seems more like a database versioning system. Is it correct? |
Yes, exactly. I used the term "migration" to refer to both small and large adjustments, because the changes to the database are called migration script in the flyway community. Flyway essentially manages and tracks database changes using version control principles, so I think calling it a database versioning system is quite accurate. |
"Flyway: Version Control for databases" would be a better title in my opinion.
Oh okay. For me, migration script is a script that migrates the current database entries to a different schema. So in your presentation, you explain concepts like "merging", "conflict resolution" of databases in CD? Merging is clear to me. But for conflict resolution, there would be many strategies I believe - a good idea to show all of them. I am thinking this topic analogous to Git VCS so correct me if my assumption is wrong. Overall, I would like you to make two changes if you agree and I am correct:
|
@algomaster99 Ok, I will incorporate points 1 and 2. However, I think there is not really a conflict resolution mechanism similar to Git in Flyway, incorporating Flyway should prevent conflicts in the first place. Conflicts can only arise if developers make mistakes in their scripts, but not because of miscommunication (as in without using flyway). Is that ok? |
That is a good point.
Great. You can edit the proposal! |
…database versioning.
Thanks! Co-authored-by: Aman Sharma <[email protected]>
Assignment Proposal
Title
Flyway: Version Control for Databases
Names and KTH ID
Deadline
Category
Description
In this presentation, we will delve into the critical role of automated database version control within the framework of Continuous Deployment. We'll begin by outlining the necessity for managing database schema changes seamlessly alongside application updates to ensure system integrity and performance. We will examine the popular tool Flyway, a popular tool for database vesioning. Flyway has been in continual development since 2010 and remains to be the industry standard for database migration and supports over 50 different database platforms. We will discuss how to integrate Flyway into the CI/CD pipeline, ensuring that every deployment reflects both application and database state changes accurately. This presentation will highlight the importance of database versioning to ensure consistency throughout different environments.
Relevance
Database versioning is essential in CD as it ensures that database schema changes are consistently and accurately applied across all environments. This automation minimizes downtime and reduces the risk of errors during deployments and thus supports the continuous releasing in typical CD practices.