Files
@ 8ad40ef0ea80
Branch filter:
Location: kallithea/docs/usage/backup.rst - annotation
8ad40ef0ea80
512 B
text/prs.fallenstein.rst
db: add some PullRequest.query() shortcuts
This makes database query code more explicit and increases readability.
E.g. the function name get_pullrequest_cnt_for_user was bad, because the
concept of "pullrequest for user" is incredibly vague, and could refer
to any kind of association between PRs and users. (Quiz time! Does it
mean that the user is the PR owner, that the user is reviewing, or that
the user has commented on the PR and thus is receiving notifications?)
A descriptive name could be "get_open_pull_request_count_for_reviewer",
because the function is indeed only concerned with reviewers and only
with open pull requests. But at this point, we might as well say
PullRequest.query(reviewer_id=user, include_closed=False).count()
which is only slightly longer, and doesn't require us to write dozens
of little wrapper functions (including, any moment now, a separate
function for listing the PRs instead of counting them).
Note that we're not actually going down an abstraction level by doing
this. We're still operating on the concepts of "pull request", "open"
and "reviewer", and are not leaking database implementation details.
The query() shortcuts are designed so they default to not altering
the query. Any processing requires explicit opt-in by the caller.
This makes database query code more explicit and increases readability.
E.g. the function name get_pullrequest_cnt_for_user was bad, because the
concept of "pullrequest for user" is incredibly vague, and could refer
to any kind of association between PRs and users. (Quiz time! Does it
mean that the user is the PR owner, that the user is reviewing, or that
the user has commented on the PR and thus is receiving notifications?)
A descriptive name could be "get_open_pull_request_count_for_reviewer",
because the function is indeed only concerned with reviewers and only
with open pull requests. But at this point, we might as well say
PullRequest.query(reviewer_id=user, include_closed=False).count()
which is only slightly longer, and doesn't require us to write dozens
of little wrapper functions (including, any moment now, a separate
function for listing the PRs instead of counting them).
Note that we're not actually going down an abstraction level by doing
this. We're still operating on the concepts of "pull request", "open"
and "reviewer", and are not leaking database implementation details.
The query() shortcuts are designed so they default to not altering
the query. Any processing requires explicit opt-in by the caller.
af371e206ec5 af371e206ec5 17c9393e9645 e73a69cb98dc af371e206ec5 af371e206ec5 af371e206ec5 af371e206ec5 af371e206ec5 af371e206ec5 e73a69cb98dc af371e206ec5 fbbe80e3322b af371e206ec5 af371e206ec5 af371e206ec5 4e6dfdb3fa01 4e6dfdb3fa01 af371e206ec5 af371e206ec5 af371e206ec5 af371e206ec5 af371e206ec5 e73a69cb98dc af371e206ec5 af371e206ec5 4e6dfdb3fa01 | .. _backup:
====================
Backing up Kallithea
====================
Settings
--------
Just copy your .ini file, it contains all Kallithea settings.
Whoosh index
------------
The Whoosh index is located in the ``data/index`` directory where you installed
Kallithea, i.e., the same place where the ini file is located
Database
--------
When using sqlite just copy kallithea.db.
Any other database engine requires a manual backup operation.
A database backup will contain all gathered statistics.
|