Convenience Scripts¶
These are designed to make it easier to perform various everyday tasks in the project. They try to be transparent by exposing the underlying commands they execute so that users can have an idea of what's happening and try to learn the commands if they wish.
These scripts assume you are using bash.
-
buildrun.sh - clean, build, and run containers in background mode
- Pass in
-v
to remove data volume, which resets the local database. - See the script file for more options.
- Pass in
-
lint.sh - lint and and auto-format code
-
test.sh - run tests and generate test coverage report
- Use the
-k
flag to filter tests. For exampletest.sh -k program_area
will select only tests with "program_area" in the name. The coverage report will show many missing lines of coverage as a result. We recommend adding--no-cov
in this case to disable the coverage report.
- Use the
-
logs.sh - view/tail container logs
-
migrate.sh - run database migrations inside container
- Add
<app> <migration_number>
to migrate to that database state. Ex:migrate.sh core 0010
- Add
-
precommit-check.sh - sanity checks before committing code
-
createsuperuser.sh - creates a default superuser.
- This assumes that
DJANGO_SUPERUSER_USERNAME
andDJANGO_SUPERUSER_PASSWORD
are set in.env.dev
- This assumes that
-
erd.sh - generate ER diagram
- The image is saved to
app/erd.png
- This script is dependent on the
graphviz
package
- The image is saved to
-
update-dependencies.sh - update python dependencies to the latest versions