chore: add target to handle database creation/migration
This commit is contained in:
parent
1c40e82fbd
commit
1eab8b9372
13
Makefile
13
Makefile
@ -1,6 +1,6 @@
|
|||||||
.DEFAULT_GOAL := help
|
.DEFAULT_GOAL := help
|
||||||
|
|
||||||
COMPOSE = docker-compose -f docker-compose.yml -f docker-compose.override.yml
|
COMPOSE = docker compose -f docker-compose.yml -f docker-compose.override.yml
|
||||||
|
|
||||||
.PHONY: setup
|
.PHONY: setup
|
||||||
setup: ## setup project
|
setup: ## setup project
|
||||||
@ -36,6 +36,17 @@ compose_up: ## start containers for this service
|
|||||||
compose_test: ## run tests in containers
|
compose_test: ## run tests in containers
|
||||||
@$(COMPOSE) run -e MIX_ENV=test --entrypoint make app test
|
@$(COMPOSE) run -e MIX_ENV=test --entrypoint make app test
|
||||||
|
|
||||||
|
.PHONY: compose_database_create
|
||||||
|
compose_database_create:
|
||||||
|
@$(COMPOSE) --profile setup run db_setup
|
||||||
|
|
||||||
|
.PHONY: compose_database_migrate
|
||||||
|
compose_database_migrate: ## apply migrations to our database
|
||||||
|
@$(COMPOSE) --profile migrate run db_migrate
|
||||||
|
|
||||||
|
.PHONY: compose_database_setup
|
||||||
|
compose_database_setup: compose_database_create compose_database_migrate ## create and apply migrations
|
||||||
|
|
||||||
.PHONY: compose_ps
|
.PHONY: compose_ps
|
||||||
compose_ps: ## status of containers
|
compose_ps: ## status of containers
|
||||||
@$(COMPOSE) ps
|
@$(COMPOSE) ps
|
||||||
|
@ -21,12 +21,12 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
init: true
|
init: true
|
||||||
environment:
|
environment: &app_environment
|
||||||
POSTGRES_HOST: *db_host
|
POSTGRES_HOST: *db_host
|
||||||
POSTGRES_USER: *db_user
|
POSTGRES_USER: *db_user
|
||||||
POSTGRES_PASS: *db_pass
|
POSTGRES_PASS: *db_pass
|
||||||
POSTGRES_NAME: wabanex_dev
|
POSTGRES_NAME: wabanex_dev
|
||||||
volumes:
|
volumes: &app_volumes
|
||||||
- '.:/opt/app'
|
- '.:/opt/app'
|
||||||
- 'app_build:/opt/app/_build'
|
- 'app_build:/opt/app/_build'
|
||||||
- 'app_deps:/opt/app/deps'
|
- 'app_deps:/opt/app/deps'
|
||||||
@ -34,6 +34,30 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
entrypoint: sleep
|
entrypoint: sleep
|
||||||
command: infinity
|
command: infinity
|
||||||
|
db_setup:
|
||||||
|
image: *app_image
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
profiles:
|
||||||
|
- setup
|
||||||
|
environment: *app_environment
|
||||||
|
volumes: *app_volumes
|
||||||
|
restart: 'no'
|
||||||
|
command: |
|
||||||
|
mix ecto.setup \
|
||||||
|
&& MIX_ENV=test mix ecto.setup
|
||||||
|
db_migrate:
|
||||||
|
image: *app_image
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
profiles:
|
||||||
|
- migrate
|
||||||
|
environment: *app_environment
|
||||||
|
volumes: *app_volumes
|
||||||
|
restart: 'no'
|
||||||
|
command: |
|
||||||
|
mix ecto.migrate \
|
||||||
|
&& MIX_ENV=test mix.ecto.migrate
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
db_data: {}
|
db_data: {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user