CLI
The grace command (entry point grace.cli:main) is your interface to Grace Framework. Outside of a generated project, only grace new is available. Once inside a project (i.e. a directory containing an importable bot package), the full command set is available.
grace --help
Global Options
Available on every in-project command (must come before the subcommand):
| Option | Description |
|---|---|
--environment TEXT |
The environment to load (production, development, test). Falls back to the GRACE_ENV environment variable, then development. |
grace --environment test db up
Commands
grace new NAME
Scaffolds a new bot project named NAME in a directory of the same name, via grace generate project. Available outside of a project.
| Option | Default | Description |
|---|---|---|
--database / --no-database |
--database |
Scaffold a database (config/database.cfg, alembic.ini, db/) alongside the project. Skip it and add one later with grace generate database. |
grace run
Runs the bot. Automatically creates the database if it doesn't exist.
| Option | Default | Description |
|---|---|---|
--sync / --no-sync |
--sync |
Sync application (slash) commands on startup. |
--watch / --no-watch |
--no-watch |
Enable hot reload — see Watcher. |
grace run --watch
grace db
Database management commands — see Database Management for details on each. All of them (except create) require a database — if your project has none, they warn and exit rather than raising.
| Command | Arguments | Description |
|---|---|---|
grace db create |
— | Creates the database if it doesn't exist. |
grace db drop |
— | Drops all tables, then drops the database. |
grace db seed |
— | Runs db/seed.py's seed_database(). |
grace db up [REVISION] |
REVISION (default head) |
Applies migrations. |
grace db down [REVISION] |
REVISION (default head) |
Reverts migrations. |
grace generate
Scaffolding commands — see Writing Generators for how these are registered, and Models & Migrations / Extensions for usage.
| Command | Arguments | Description |
|---|---|---|
grace generate cog NAME [DESCRIPTION] |
NAME (PascalCase), DESCRIPTION (optional) |
Generates bot/extensions/<name>_cog.py. |
grace generate model NAME [COLUMN:TYPE ...] |
NAME (PascalCase), variadic COLUMN:TYPE pairs (types: String, Text, Integer, Float, Boolean) |
Generates bot/models/<name>.py and an initial migration. Requires a database. |
grace generate migration MESSAGE |
MESSAGE |
Autogenerates an Alembic revision from the current model state. Requires a database. |
grace generate database |
— | Adds config/database.cfg, alembic.ini, and db/ to the current project (for projects created with --no-database). |
grace generate project NAME |
NAME (lowercase/hyphens) |
Scaffolds a new project directory (used internally by grace new). |
grace generate is a dynamic command group — any module under grace.generators exposing a generator() function shows up here automatically.