A simple command-line tool to manage Odoo projects using a pew-managed virtual environment.
Install directly from GitHub or your local source:
pip install odooquickrunTo remove the tool:
pip uninstall odooquickrunPrerequisite: Ensure you have created and activated the pew virtual environment for your project before running these commands.
Scaffold a new Odoo project with the standard layout and clone Odoo source code.
odooquickrun init <project_name> [-v <version>] [--no-squash]-v/--version: Odoo version branch to clone (default:19.0).--no-squash: Clone full git history instead of shallow (depth=1).
This creates:
<project_name>/
├── addons/requirements.txt
├── config/dev.conf
├── project/requirements.txt
├── odoo/ ← cloned from GitHub
└── .gitignore
Start Odoo
odooquickrun startStart in Debug Mode
Running with debugpy on port 5678.
odooquickrun debugUpgrade Modules Update specific modules in a database.
odooquickrun upgrade -d <db_name> -m <module1,module2,...>-d: Database name.-m: Comma-separated list of modules to upgrade.
You can manage your local PostgreSQL databases directly using the db command.
Note: The default database port is
5432. You can specify a custom port for any of the commands below using the--db-port <port>option.
List all databases (shows owner and size)
odooquickrun db infoDrop databases Delete one or multiple databases.
odooquickrun db drop <db1,db2,...> [options]<db1,db2,...>: Comma-separated list of database names (e.g.,test_db,demo_db).-f/--force: Skip confirmation prompt (useful for automation).
List all users (shows superuser & createdb status)
odooquickrun db list_usersCreate a new user
Creates a user with CREATEDB permission (required for Odoo to create its own databases).
odooquickrun db create_user <username> <password>Drop a user Permanently delete a postgres user/role.
odooquickrun db drop_user <username> [-f]Execute a SQL cleaning script
Run a .sql file against a database (e.g., for data anonymization or cleanup).
odooquickrun db clean <database> -f <path/to/file.sql> [--force]-f/--file: Path to the SQL file to execute (required).--force: Skip confirmation prompt.
This CLI is designed to be used inside a pew-managed virtualenv containing an Odoo project, structured as follows:
<project_root>/
│
├── odoo/ # Odoo core (source code)
│
├── addons/
│ ├── custom_3rd_party_addons_1/ # 3rd party modules (OCA, ...)
│ │ ├── module_a/
│ │ ├── module_b/
│ ├── custom_3rd_party_addons_2/
│ │ ├── module_c/
│ │ ├── module_d/
│ ...
│
├── project/ # Customized modules for project
│ ├── project_module_1/
│ ├── project_module_2/
│ ├── project_module_3/
│
├── config/
├── local.conf (or dev.conf)
- You don't need to specify the
addons_pathin the.conffile; the script will automatically calculate and prepare it for you based on the folder structure above.
odooquickrun automatically detects whether your project uses the standard layout or an odoo.sh setup.
- If
config.shexists in the project root → odoo.sh mode - Otherwise → regular mode (standard layout)
<project_root>/
├── config.sh # Project configuration (REQUIRED for detection)
├── odoo.sh # Original launcher (optional, not used by odooquickrun)
├── Makefile # Optional
└── <project_dirs>/ # Custom modules (referenced by PROJECT_DIRS)
├── module_a/
└── module_b/
| Variable | Description | Default |
|---|---|---|
VERSION |
Odoo version (e.g., 17.0) |
Required |
PROJECT |
Project name | Directory name |
PROJECT_DIRS |
Path(s) to custom addons | — |
VENV |
Virtualenv name | venv-odoo{VERSION} |
DB |
Database name | v{VERSION}{e/c}_{PROJECT} |
IP |
Listen address | 127.0.0.1 |
HTTP_PORT |
Listen port | 8069 |
ODOO_ROOT_DIR |
Root dir for Odoo source | ~/code/odoo |
EXTRA_ADDONS_PATH |
Additional addons paths | — |
EXTRA_PARAMS |
Extra odoo-bin parameters | — |
ENTERPRISE |
Enable enterprise (1/0) |
1 |
- Python 3.7+
pewfor managing virtual environmentsodoo-binavailable in your Odoo project path- PostgreSQL client tools (
psql) installed and added to PATH
Phúc Trần Thanh (Felix)
- 📧 Email: phuctran.fx.vn@gmail.com
- 🐙 Github: @phuctranfxvn