# Platform.sh build hooks cannot reach services: run DB migrations in the deploy hook

## TL;DR

The Platform.sh build hook cannot talk to your database: it runs during the build phase, before services are up, so any migration or seed command in `hooks.build` fails with a connection error. Keep the build hook to file work only: npm install, asset compilation, cache warmup that needs no DB. Put everything that touches a service (database migrations, search index rebuilds, queue priming) in the deploy hook, which runs after the environment's services are live.

Use this when you run into the situation in the title.

**When not to use this skill:** unrelated tasks. It covers only the procedure above.

## Compatibility

The steps above apply to the commands named in them. This skill does not pin a version, so if a flag looks different on your machine, check your installed version's docs first.

## Details

If your build needs data from a service, invert it: build the artifact now, hydrate it at deploy time.

Context: Web source (Platform.sh deployment template walkthrough on DEV Community, consistent with official docs): build hooks can modify the application files on disk but cannot access any services like databases. The deploy hook runs later, after services are available, and is where database migrations and other service-dependent work belongs.
