===============
Postgres vacuum
===============

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:5d2939b9cb7920d62259b3053fcbd55d53424a63311afd81fed3735215f8dfac
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
    :target: https://odoo-community.org/page/development-status
    :alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
    :target: https://github.com/OCA/server-tools/tree/16.0/postgres_vacuum
    :alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/server-tools-16-0/server-tools-16-0-postgres_vacuum
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=16.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module adds a cronjob that vacuums or analyses postgres tables.

As postgres' autovacuum is not recommended for busy databases, it can be
a better choice to schedule this process manually.

.. IMPORTANT::
   This is an alpha version, the data model and design can change at any time without warning.
   Only for development or testing purpose, do not use in production.
   `More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
   :local:

Configuration
=============

To configure this module, you need to:

1. Go to Settings/Technical/Automation/Scheduled Actions
2. Select actions *Vacuum Postgresql Tables* and *Analyze Postgresql
   Tables*
3. Adapt the schedule to run at a time when your Odoo installation is
   least busy, take care that the analyze and vacuum cronjobs won't run
   simultaneously
4. Adapt the parameters to match your setting, but the defaults should
   be fine for most users
5. Note that the vacuum cronjob is inactive by default, because this is
   a potentially very heavy operation

Usage
=====

To use this module, you need to:

1. Go to Settings/Technical/Automation/Scheduled Actions
2. Select action *Vacuum Postgresql Tables*
3. Click the *Run Manually* button

Known issues / Roadmap
======================

- it would be nice if the cronjob could detect some odoo-specific
  measure of "busyness" and only run if it is below some threshold
- add some statistics in the model views about number of dead rows, last
  vacuum timestamp etc from
  https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20postgres_vacuum%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Hunki Enterprises BV
* Therp BV

Contributors
------------

- Kevin Kamaa <kkahumba@therp.nl> (https://therp.nl)
- Holger Brunn <mail@hunki-enterprises.com>
  (https://hunki-enterprises.com)

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/16.0/postgres_vacuum>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
