destroy
alchemy destroy [file] [options]destroy deletes every resource in a stack. It computes a plan where all existing resources are marked for deletion, asks for approval, and removes them in dependency order.
Under the hood, destroy is deploy with the desired state zeroed out — every resource in state plans as a deletion.
Plan: 2 to delete - Worker (Cloudflare.Worker) - Bucket (Cloudflare.R2.Bucket) Proceed? ◉ Yes ○ No ✗ Worker (Cloudflare.Worker) deleted ✗ Bucket (Cloudflare.R2.Bucket) deleted
| Option | Description |
|---|---|
[file] |
Stack file to destroy (defaults to alchemy.run.ts) |
--stage <name> |
Stage to destroy (defaults to dev_$USER) |
--yes |
Skip the approval prompt |
--dry-run |
Show what would be deleted without actually deleting |
--profile <name> |
Auth profile to use (defaults to default or $ALCHEMY_PROFILE) |
--env-file <path> |
Load environment variables from a file |
Examples
Section titled “Examples”# Destroy a PR preview environmentalchemy destroy --stage pr-42 --yes
# Destroy your personal dev stagealchemy destroy --stage dev_samRetained resources
Section titled “Retained resources”Resources declared with RemovalPolicy.retain() are skipped by
destroy: the provider’s delete is never called and only the state
row is dropped, so the cloud object outlives the stack. The same is
true of a resource whose declaration you simply delete — the orphan
sweep reads the policy from the state row, not from your code.
import * as RemovalPolicy from "alchemy/RemovalPolicy";
const data = yield* R2.Bucket("Data").pipe(RemovalPolicy.retain());See Resource lifecycle › Removal policy.
destroy is scoped to one stack + stage and driven by the state store; to enumerate and delete everything a set of providers can see in the live account, see nuke.
Where next
Section titled “Where next”- deploy — bring the stack back
- nuke — account-wide teardown, not scoped to a stack
- state — inspect and clear the state the plan is driven by
- Stages — how environments are isolated
- Resource lifecycle › Removal policy — keep a resource when its stack goes away