-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
41 lines (30 loc) · 1.57 KB
/
Copy pathMakefile
File metadata and controls
41 lines (30 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Default values for DbContext and MigrationName (can be overridden from the command line)
PROJECT_NAME = HEROND_POINT
STARTUP_PROJECT = src/Hosts/Web.Api
# Default Migration Name, can be overridden when calling the make command
name ?= InitialMigration
# Default output directory for migrations (can be overridden)
OUTPUT_DIR ?= ./Migrations
# Define the base command for migrations
MIGRATE_CMD = dotnet ef migrations add $(name) --startup-project $(STARTUP_PROJECT) --project $(PROJECT_NAME) --context $(DB_CONTEXT) --output-dir $(OUTPUT_DIR)
UPDATE_CMD = dotnet ef database update --project $(PROJECT_NAME) --startup-project $(STARTUP_PROJECT) --context $(DB_CONTEXT)
REMOVE_CMD = dotnet ef migrations remove --project $(PROJECT_NAME) --startup-project $(STARTUP_PROJECT) --context $(DB_CONTEXT)
# Add Migration for a specified DbContext
add-migration:
@echo "Adding migration $(name) for DbContext $(DB_CONTEXT)..."
$(MIGRATE_CMD)
# Update Database (apply the migration) for a specified DbContext
update-database:
@echo "Updating database for $(DB_CONTEXT)..."
$(UPDATE_CMD)
# Rollback last migration for a specified DbContext
rollback:
@echo "Rolling back last migration for $(DB_CONTEXT)..."
$(REMOVE_CMD)
# Target to manage multiple DbContexts (DRY)
add-migration-db:
$(MAKE) add-migration DB_CONTEXT=$(DB_CONTEXT) MIGRATION_NAME=$(MIGRATION_NAME) OUTPUT_DIR=$(OUTPUT_DIR) PROJECT_NAME=$(PROJECT_NAME)
update-database-db:
$(MAKE) update-database DB_CONTEXT=$(DB_CONTEXT) PROJECT_NAME=$(PROJECT_NAME)
rollback-db:
$(MAKE) rollback DB_CONTEXT=$(DB_CONTEXT) PROJECT_NAME=$(PROJECT_NAME)