✖ DB_REQUIRED: Dataset table "td_demo_shop_orders" needs env.db in envs/staging.yaml.
We already have a database configured — DATABASE_URL is set in CI and sdods db status is happy. So which database does the dataset want, and why is the environment file involved when the other one is not?
They are two different databases and the naming does not help.
DB_DRIVER / DATABASE_URL / SQLITE_PATH configure the platform database — runs, scenarios, steps, heal events, proposals. It is where results go.
env.db configures the test-data database for that environment: the one holding your td_<slug>_<name> tables. It lives in the environment file because staging's fixture data is not local's fixture data, and it is legitimate for one environment to have one and another not to.
--truncate replaces the rows scoped to that environment rather than appending, which is what you want on a re-seed. The envColumn in your source spec is the column that scoping is written to, and it is stripped from the rows the steps see.