Evolutionary Database Design
It's my first time in this forum! But I need your help and if you can help me I would really appreciate it.
I am trying to start building a new version control (migration based - Flyway) and database CI/CD system in my company.
Currently I think we don't work in the right way, i.e. we just develop in DEV (database that all SQL Developers access) and then do releases for UAT and PROD with a package using sqlcmd (.bat file).
Lately I've been reading about: "Evolutionary Database Design" (https://martinfowler.com/articles/evodb.html) and I find it quite interesting but I needed help on some questions.
This case would be to apply in existing and huge databases that have a lot of complexity so I don't think it will be that easy to change and I need your help.
In all the documentation I see they do tests on dockers and so on and in the "Evolutionary Database Design" model they say that: "Everybody gets their own database instance" and this is one of the points that makes me confused, I always worked in a DEV database (as well as other SQL Developers) and developed there and then we would test and move to UAT and only then to PROD.
I have seen something like vagrant and have VM with SQL Server, but I am a bit lost in this part. How can I get self-contained ("sandbox") (docker, vagrant, etc.) SQL Server to achieve: "Everybody gets their own database instance"?