1"""Managed Postgres for local development.
2
3A database URL is never required. If you configure one, we use it and stay out
4of the way. If you don't, plain-dev provides one: a Postgres server per project,
5and a database per checkout that starts as a copy of your main database's data.
6
7The pieces (import from the submodule that owns the name):
8
9- `identity` — what this project and checkout are called, and which database
10 they own. All derived; the only stored state is a pointer file written when
11 you explicitly reassign a checkout.
12- `backends` — where the server comes from (Docker, or a local Postgres).
13- `cluster` — dev's policy on top of that server: metadata and forking.
14- `resolve` — whether to take over at all, and the URL if we do.
15- `guard` — protecting a shared database from a branch's migrations.
16- `branch_switch` — noticing a database left behind by a branch switch.
17- `schema_state` — how far apart the database and the code's migrations are.
18"""