Skip to content

Instantly share code, notes, and snippets.

@kgaut
Last active February 21, 2020 15:21
Show Gist options
  • Save kgaut/9a7e12408a72a7c4993109c3f20f62b3 to your computer and use it in GitHub Desktop.
Save kgaut/9a7e12408a72a7c4993109c3f20f62b3 to your computer and use it in GitHub Desktop.
Makefile rules to dump / import / empty database
## db-dump : Dump the database in a dated gzip file within ./db folder
.PHONY: db-dump
dump:
docker exec $(shell docker ps --filter name='^/$(PROJECT_NAME)_php' --format "{{ .ID }}") drush -r $(DRUPAL_ROOT) $(filter-out $@,$(MAKECMDGOALS)) sql-dump --gzip --result-file="../db/`date +%Y-%m-%d_%H-%M-%S`-$(PROJECT_BASE_URL)-DEV.sql"
## db-import : Supprime la base de données
## Recrée la base de données
## importe le dump le plus récent du dossier db/,
## vide le cache
## réimporte la configuration
.PHONY: db-import
db-import: db-empty
$(eval DUMP=$(shell ls -t ./db/ | head -1))
@echo Import du dump : $(DUMP)
@docker-compose exec -T mariadb zcat /var/db/$(DUMP) | docker-compose exec -T mariadb mysql -u"$(DB_USER)" -p"$(DB_PASSWORD)" $(DB_NAME)
@echo Import du dump : $(DUMP) terminé
$(MAKE) drush cr
$(MAKE) drush cim
## db-empty : drop and recreate database
.PHONY: db-empty
db-empty:
@docker-compose exec -T mariadb mysql -u"$(DB_USER)" -p"$(DB_PASSWORD)" -e "DROP DATABASE IF EXISTS $(DB_NAME)"
@echo Database $(DB_NAME) dropped
@docker-compose exec -T mariadb mysql -u"$(DB_USER)" -p"$(DB_PASSWORD)" -e "CREATE DATABASE $(DB_NAME)"
@echo Database $(DB_NAME) recreated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment