Using Fluent Migrations to Put Your Schema in Git
I just made a change to the database schema, but now the team needs it for my feature to work. How can I keep track of my database changes and communicate them to the rest of the team? Migrations give a structured way to structurally alter your database structure as your application evolves . . . structurally. They also provide a way for everyone on the team: developers, testers, CI admins, DBAs, etc, to apply the latest changes wherever they are needed - with uniformity and low friction. Fluent Migrations for .NET provide a discoverable, human readable API that supports dozens of different databases (including SQL Server, PostgreSQL, Oracle). Topics covered in this session: * Why you should use migrations * How to write fluent migrations * A look behind the scenes of how fluent migrations work * Drawbacks/downsides to using migrations * Other migration options for EF and NoSQL (Couchbase) Ad hoc SQL scripts make you want to flip a desk? Keep your team on the same page with fluent migrations. (This session will briefly mention EF Migrations, but is not primarily about EF).
Prerequisites
This session is heavily C#/.NET based, so you will benefit the most if you are familiar with those. Knowledge of databases, especially relational, will be helpful. This session will *not* be explaining or showing source control/Git, but it also does not depend on your knowledge of any particular source control tool ("Git" in the title is just shorthand for "source control"). This session is *not* using EF Migrations, but if you have some knowledge of them, it may be helpful for you to compare/contrast. "Migration" in the context of this session means "the migration of data structures as your program evolves". It does not mean "the movement of data from one database to another".
Take Aways
- What database migrations are
- Why database migrations are important
- A discussion of database migrations and NoSQL
- Pros/cons of using a migration approach
- How to get started using Fluent Migrations
- A brief summary of alternative tools for database migration