Migrating from shared development database to single database for each developer

We are planning migrating from single shared development database model (for local deployments and CI) to individual database for each developer per each version branch, requiring easy back off to initial set of data for that version.

Problem with shared database is obvious. Little mistake or experiment from one developer could potentially break all other deployments.

  • Deploying Golang web app static files with Docker container
  • After docker-compose build the docker-compose up run old not updated containers
  • Missing tag after docker stack deploy
  • How to automate multi server deployment using docker
  • Issue when I try to create a docker image [duplicate]
  • Storing and analyzing electricity and payment data in open source DB
  • First thing to come in my mind considering sharing of local, disposable and predictable database instances (or local environments in general) is to use either Vagrant or Docker. Conditions and restrictions are the following:

    • Each developer should be able to pull version specific environment containing the database instance with initial set of data, and start coding right away, performing local deployments with minimum amount of configuration and interference.
    • Each local environment should be as isolated and indenpendent as possible
    • Environment images should be under version control and easily maintained
    • Environment should be easy to reset to consistent initial state
    • Solution should be compatible with weblogic deployments
    • Local environment shouldn’t force IDE or other development tools (i.e. boundary between host and virtual environment should be transparent)

    Which approach would better fill the requirements, Vagrant or Docker, or maybe both? Would Ansible be useful tool to automatically provision the VM / container with weblogic server, database and other infrastructure components, wiring everything together with minimum effort from developer?

    Is there some tutorials which would aid me at beginning of this task?

  • Setting docker environment variable to existing environment variable with different name
  • Docker swarm on physical machines without docker-machine
  • rolling deployment for docker containers behind load balancer
  • Deploying a minimal flask app in docker - server connection issues
  • Deploy to elasticbeanstalk via CLI deploy command with Dockerrun.aws.json
  • Docker daemon can't start after installing Kubernetes in Ubuntu
  • Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.