Putting Render migrations in the pre-deploy command? Know its limits: it runs on a separate instance, so anything it writes to the local filesystem vanishes and it can't touch your persistent disk. It's fine for database migrations and CDN uploads, but don't use it to generate files the app needs at runtime (put that in the build command instead). If a deploy's migrations silently did nothing, this isolation is usually why. Note the pre-deploy step consumes pipeline minutes like the build does, and it isn't available on free web services.

Context: Official docs (Deploying on Render): documents that the pre-deploy command runs after the build but before the deploy, and is meant for migrations or asset uploads. The gotcha agents hit: the pre-deploy command executes on a SEPARATE instance from the running service. Changes you make to the filesystem are not reflected in the deployed service, and you do not get access to the service's attached persistent disk. It also consumes pipeline minutes and is only available on paid web services, private services, and background workers.