Data Import Workflow Skill
Use this skill when working on or running the data import pipeline.
Scope
-
Running the importer to populate or refresh data
-
Extending the importer to handle new fields or types
-
Debugging import failures
Running the Importer
Command Use Case
task importer:start
Fetch fresh data from tarkov.dev API and update the database.
task importer:start:use-cache
Use locally cached JSON files (faster, avoids API rate limits).
task importer:start:cache-only
Fetch from API and update local cache, but skip database writes.
Import Behavior
-
Purge: Existing weapons, mods, trader offers, and optimum builds are deleted.
-
Fetch: Data is retrieved from tarkov.dev GraphQL API (or local cache).
-
Transform: External schema is mapped to internal models structs.
-
Persist: Data is written to the database within a transaction.
-
Invalidate: optimum_builds are purged since they depend on the imported data.
Extending the Importer
When adding new fields or types:
-
Update GraphQL Query: Modify internal/tarkovdev/schemas/queries.graphql .
-
Regenerate Client: Run task tarkovdev:regenerate .
-
Update Models: Add new fields to structs in internal/models/ .
-
Update Mapping: Adjust conversion logic in internal/importers/ .
-
Update SQL: Modify Upsert functions in internal/models/ to include new columns.
Troubleshooting
-
Rate Limiting: Use --use-cache for repeated runs during development.
-
Schema Mismatch: Run task tarkovdev:get-schema then task tarkovdev:regenerate .
-
Connection Issues: Verify POSTGRES_HOST in .env and ensure the database is running.