|
1 | 1 | version: '3' |
2 | 2 |
|
3 | | -# Backend commands |
4 | | -# Backend-specific development tasks |
| 3 | +# Backend database management |
| 4 | +# Encore maintains separate database clusters for dev (encore run) and test (encore test) |
5 | 5 |
|
6 | 6 | tasks: |
7 | | - dev: |
8 | | - desc: "Start backend development server" |
9 | | - cmds: |
10 | | - - echo "🔧 Starting backend..." |
11 | | - - cd ../../../backend && encore run |
12 | | - silent: false |
13 | | - |
14 | | - logs: |
15 | | - desc: "View backend logs" |
| 7 | + # Dev cluster commands (for encore run) |
| 8 | + db:migrate: |
| 9 | + desc: "Run migrations on dev cluster" |
16 | 10 | cmds: |
17 | | - - tail -f ../../backend.log |
| 11 | + - echo "🔄 Running migrations on dev cluster..." |
| 12 | + - cd ../../../backend && encore db migrate |
| 13 | + - echo "✅ Dev cluster migrations complete" |
18 | 14 | silent: false |
19 | 15 |
|
20 | | - health: |
21 | | - desc: "Check backend health" |
| 16 | + db:reset: |
| 17 | + desc: "Reset dev cluster database (DESTRUCTIVE)" |
| 18 | + prompt: "This will delete all DEV data. Continue?" |
22 | 19 | cmds: |
23 | | - - echo "❤️ Checking backend health..." |
24 | | - - curl -f http://localhost:${BACKEND_PORT:-4000}/health || echo "⚠️ Backend not responding" |
| 20 | + - echo "⚠️ Resetting dev cluster database..." |
| 21 | + - cd ../../../backend && encore db reset --all |
| 22 | + - echo "✅ Dev cluster database reset" |
25 | 23 | silent: false |
26 | 24 |
|
27 | | - db:migrate: |
28 | | - desc: "Run database migrations" |
| 25 | + db:shell: |
| 26 | + desc: "Open dev cluster database shell. To be used along side encore run." |
29 | 27 | cmds: |
30 | | - - echo "🔄 Running database migrations..." |
31 | | - - cd ../../../backend && encore db migrate |
32 | | - - echo "✅ Migrations complete" |
| 28 | + - echo "🗄️ Opening dev cluster shell..." |
| 29 | + - cd ../../../backend && encore db shell db --write |
33 | 30 | silent: false |
34 | 31 |
|
35 | | - db:reset: |
36 | | - desc: "Reset database (DESTRUCTIVE)" |
37 | | - prompt: "This will delete all data. Continue?" |
| 32 | + # Test cluster commands (for encore test) |
| 33 | + db:migrate:test: |
| 34 | + desc: "Run migrations on test cluster" |
38 | 35 | cmds: |
39 | | - - echo "⚠️ Resetting database..." |
40 | | - - cd ../../../backend && encore db reset |
41 | | - - echo "✅ Database reset complete" |
| 36 | + - echo "🔄 Running migrations on test cluster..." |
| 37 | + - cd ../../../backend && encore db migrate --test |
| 38 | + - echo "✅ Test cluster migrations complete" |
42 | 39 | silent: false |
43 | 40 |
|
44 | | - db:shell: |
45 | | - desc: "Open database shell" |
| 41 | + db:reset:test: |
| 42 | + desc: "Reset test cluster database (DESTRUCTIVE)" |
46 | 43 | cmds: |
47 | | - - cd ../../../backend && encore db shell run --write |
| 44 | + - echo "⚠️ Resetting test cluster database..." |
| 45 | + - cd ../../../backend && encore db reset --all --test |
| 46 | + - echo "✅ Test cluster database reset" |
48 | 47 | silent: false |
49 | 48 |
|
50 | | - test: |
51 | | - desc: "Run backend tests" |
| 49 | + db:shell:test: |
| 50 | + desc: "Open test cluster database shell. To be used when debugging backend tests." |
52 | 51 | cmds: |
53 | | - - echo "🧪 Running backend tests..." |
54 | | - - cd ../../../backend && encore test |
| 52 | + - echo "🗄️ Opening test cluster shell..." |
| 53 | + - cd ../../../backend && encore db shell db --test --write |
55 | 54 | silent: false |
56 | 55 |
|
57 | | - integration:metrics: |
58 | | - desc: "Verify metrics via full agent run (requires backend + Appium harness)" |
| 56 | + # Utility commands |
| 57 | + db:status: |
| 58 | + desc: "Show database connection info for both clusters" |
59 | 59 | cmds: |
60 | | - - echo "Validating prerequisites for metrics integration test..." |
61 | | - - echo "Phase 1 - Health Checks (backend-debugging_skill)" |
62 | | - - > |
63 | | - if ! command -v adb >/dev/null 2>&1; then |
64 | | - echo "❌ adb not found. Install Android platform tools."; exit 1; |
65 | | - fi |
66 | | - - > |
67 | | - if ! adb devices | grep -E "device$" | grep -v "^List" >/dev/null 2>&1; then |
68 | | - echo "❌ No Android device/emulator detected via 'adb devices'."; exit 1; |
69 | | - else |
70 | | - echo "✅ Android device detected."; |
71 | | - fi |
72 | | - - > |
73 | | - APPIUM_URL=${VITE_APPIUM_SERVER_URL:-http://127.0.0.1:4723/}; |
74 | | - echo "📡 Checking Appium server at $APPIUM_URL ..."; |
75 | | - if curl -sf "$APPIUM_URL/status" >/dev/null 2>&1 || curl -sf "$APPIUM_URL/wd/hub/status" >/dev/null 2>&1; then |
76 | | - echo "✅ Appium server already running."; |
77 | | - else |
78 | | - echo "⚡ Appium not running. Starting via dev-android-appium.sh..."; |
79 | | - (cd ../../../backend && bash scripts/dev-android-appium.sh) || { |
80 | | - echo "❌ Failed to start Appium. Check logs at \$TMPDIR/appium.log"; |
81 | | - exit 1; |
82 | | - }; |
83 | | - fi |
84 | | - - echo "Phase 2 - Skipping Backend Health Check" |
85 | | - - > |
86 | | - echo "ℹ️ Backend health check skipped - test runs in isolated encore test runtime"; |
87 | | - echo "ℹ️ Worker subscription will be loaded via import in test file"; |
88 | | - echo "ℹ️ Use Encore MCP tools to inspect test results after run"; |
89 | | - - echo "Phase 3 - Running Integration Test" |
90 | | - - > |
91 | | - echo "📝 Prerequisites:"; |
92 | | - echo " ✅ Appium Inspector running manually"; |
93 | | - echo " ✅ Android Studio emulator running manually"; |
94 | | - echo " ✅ App installed from .env (VITE_PACKAGE_NAME)"; |
95 | | - echo ""; |
96 | | - echo "🔍 Debugging with Encore MCP:"; |
97 | | - echo " After test runs, use Encore MCP tools to inspect:"; |
98 | | - echo " - mcp_encore-mcp_get_services (service status)"; |
99 | | - echo " - mcp_encore-mcp_get_traces (recent traces)"; |
100 | | - echo " - mcp_encore-mcp_query_database (run details)"; |
101 | | - echo ""; |
102 | | - - echo "🚀 Starting metrics test (encore test with worker subscription loaded)..." |
103 | | - - cd ../../../backend && encore test agent/tests/metrics.test.ts |
| 60 | + - echo "📊 Database Status" |
| 61 | + - echo "" |
| 62 | + - echo "Dev Cluster (encore run):" |
| 63 | + - cd ../../../backend && encore db conn-uri db 2>&1 || echo " ⚠️ Dev cluster not available" |
| 64 | + - echo "" |
| 65 | + - echo "Test Cluster (encore test):" |
| 66 | + - cd ../../../backend && encore db conn-uri db --test 2>&1 || echo " ⚠️ Test cluster not available" |
104 | 67 | silent: false |
0 commit comments