Run SQL files against a running MySQL container to incorporate schema changes.
10K+
This image will automatically play a sequence of SQL scripts against an existing MySQL database. It's useful as part of a compose file to keep the schema up to date without having to delete the MySQL volume to update the schema.
Run the image setting the following environment variables:
MYSQL_HOSTMYSQL_USERMYSQL_PASSWORDMYSQL_DATABASEEnsure your database container is running and link it to the container (-l)
Finally, map your directory containing migrations to /docker-entrypoint-migrations.d. Each migration should be an sql or sql.gz file and must start with migration.
docker run --link=compose_project_db_1:database \
-e MYSQL_HOST=database \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=password \
-e MYSQL_DATABASE=db \
-v $(pwd)/migrations:/docker-entrypoint-migrations.d/ \
mathewhall/db_migrate
database:
image: mysql
expose:
- 3306
ports:
- "3306:3306"
volumes:
- /var/lib/mysql
- ./schema:/docker-entrypoint-initdb.d
migration:
image: mysql_migration
volumes:
- ./migrations:/docker-entrypoint-migrations.d
links:
- database
Each time your containers are started via compose, the migrations will run.
Content type
Image
Digest
Size
121.9 MB
Last updated
over 10 years ago
docker pull mathewhall/mysql_migration