I'm just about to set up CI for my web application. I'm using Bitbucket and Pipeline beta as a CI. The web application is strongly coupled to the database, nothing can be tested without data in it.
My team also has some issues with the local devenv, as due to frequent DB schema changes, Django migrations are irreversible, so we are ending up reverting the DB, and setting up the same users every now and then (which is a lot of repeated, manual work, feels like something that could be automated).
I'm wondering if there's a best practice to solve these issues. I had an idea of having a version-controlled database, that can be considered as the single source of truth for local development, and for the e2e tests on the CI. This way we won't end up using a shared database, but everyone can pull the latest version of the DB fixture and update it if necessary. Are there any reasons against this? (I never heard of anyone doing this before).
Edit
We're working with Django backend, Angular frontend and MySQL