- CLI: migration failures now reach the exit code. A failed
up()/down()step thatmigrateTo()folds into its output (e.g.Error migrating to <version>.) madewheels migrate latest|up|downprint the error inside the green success block and still exit 0;wheels db reset --forceexited 0 when it refused on aServerNotRunningcheck; andwheels migrate forget|pretendrefusals (not in tracking table, matching local file exists, already applied, no matching file) printed red but exited 0. All three now exit non-zero, so awheels migrate latest && …CI gate no longer proceeds as if the schema moved. Informational dry-run output (missing<version>/ missing--yes) still exits 0. The migrate-side sibling of the #2973/#2987 seeder honesty fix (#3081)