Skip to main content

Project

Development

Security

Testing

Database

feather db upgrade needs at least one migration. A project with a migrations/ directory and nothing in migrations/versions exits non-zero and tells you to generate one, rather than applying nothing and leaving the app on an empty database. feather security-check reports the same thing as its migrations check.
feather db init is for apps with no migrations/ directory. feather new already scaffolds one, so running it in a fresh app fails with “directory migrations already exists”. You need it when you add a database to an app scaffolded without one, or after deleting migrations/ to restart the migration history.

Code generation

Workers (RQ backend)

Job queue (thread and RQ backends)

Run a job once

feather jobs run is for cron-style schedulers on any platform. It imports the app, finds the @job function, and calls it synchronously inside the app context in the current process. The queue is not involved, so it works with every backend and needs no worker. NAME is the function name or its dotted path. A name that matches jobs in two modules is refused; use the dotted path. Values that parse as JSON (7, true, null, [1, 2]) are decoded, and everything else is passed as a string. The command prints one line, such as Job services.reports.send_digest finished in 0.84s, followed by the return value when there is one. If the job raises, the traceback goes to stderr and the command exits 1. An unknown job exits 2. The job runs once: retry and timeout from @job do not apply.

Administration (multi-tenant)

Deployment

Environment