.. contents:: Table of Contents
Introduction
============
The package ``ftw.catalogdoctor`` provides healthcheck to find
inconsistencies in ``portal_catalog`` and surgery to remove some of them. It
can be run via a ``zopectl.command``.
Healthcheck
===========
Lists inconsistencies detected in ``portal_catalog``. Finds inconsistencies by
inspecting the catalog's internal data structures. It currently uses ``paths``
(the rid-path mapping), ``uids`` (the path-rid mapping), the ``UID`` index and
catalog metadata to determine if the catalog is healthy or if there are
problems. Healtcheck is a read-only operation and won't modify the catalog.
It can be run as follows:
.. code:: sh
$ bin/instance doctor healthcheck
Surgery
=======
Attempts to fix issues found by ``healthcheck``. Will do a healtchcheck before
surgery, then attempt surgery and finally do a post-surgery healthcheck.
Surgery is a write operation but changes are only committed to the database if
the post-surgery healtcheck yields no more health problems.
Currently the set of available surgery is limited to problems we have observed
in production.
It can be run as follows:
.. code:: sh
$ bin/instance doctor surgery
There is also a `--dry-run` parameter that prevents committing changes.
.. code:: sh
$ bin/instance doctor --dry-run surgery
Debugging
=========
If you need to debug/analyze issues that ``ftw.catalogdoctor`` cannot fix yet
have a look at the ``debug`` module. It provides useful functions to ``pprint``
or inspect catalog state.
Installation
============
- Add the package to your buildout configuration:
::
[instance]
eggs +=
...
ftw.catalogdoctor
Compatibility
-------------
Plone 4.3.x
Plone 5.1.x
Development
===========
1. Fork this repo
2. Clone your fork
3. Shell: ``ln -s development.cfg buildout.cfg``
4. Shell: ``python bootstrap.py``
5. Shell: ``bin/buildout``
Run ``bin/test`` to test your changes.
Or start an instance by running ``bin/instance fg``.
Links
=====
- Github: https://github.com/4teamwork/ftw.catalogdoctor
- Issues: https://github.com/4teamwork/ftw.catalogdoctor/issues
- Pypi: http://pypi.python.org/pypi/ftw.catalogdoctor
Copyright
=========
This package is copyright by `4teamwork <http://www.4teamwork.ch/>`_.
``ftw.catalogdoctor`` is licensed under GNU General Public License, version 2.
Changelog
=========
1.2.1 (2024-10-14)
------------------
- Delay import of Testing module in zopectl command to not accidently create a demo storage. [buchi]
1.2.0 (2020-10-06)
------------------
- Defer reindex until removal from indexes is done, introduce post-op. [deiferni]
1.1.0 (2020-09-30)
------------------
- Drop duplicate objects from Acquisition when fixing UID index. [deiferni]
- Implement reindexing objects when still traversable for orphaned rids. [deiferni]
- Check for shorter path rather than direct parent in surgery safeguard. [deiferni]
- Use extra rid removal surgery for new symptoms. [deiferni]
1.0.0 (2019-07-08)
------------------
- Initial implementation.
Raw data
{
"_id": null,
"home_page": "https://github.com/4teamwork/ftw.catalogdoctor",
"name": "ftw.catalogdoctor",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "ftw catalogdoctor",
"author": "4teamwork AG",
"author_email": "mailto:info@4teamwork.ch",
"download_url": "https://files.pythonhosted.org/packages/e8/59/12ce4b1aaf4681d1055ddb4b561b68b3af448618b253fdab245cb97021a3/ftw.catalogdoctor-1.2.1.tar.gz",
"platform": null,
"description": ".. contents:: Table of Contents\n\n\nIntroduction\n============\n\nThe package ``ftw.catalogdoctor`` provides healthcheck to find\ninconsistencies in ``portal_catalog`` and surgery to remove some of them. It\ncan be run via a ``zopectl.command``.\n\n\nHealthcheck\n===========\n\nLists inconsistencies detected in ``portal_catalog``. Finds inconsistencies by\ninspecting the catalog's internal data structures. It currently uses ``paths``\n(the rid-path mapping), ``uids`` (the path-rid mapping), the ``UID`` index and\ncatalog metadata to determine if the catalog is healthy or if there are\nproblems. Healtcheck is a read-only operation and won't modify the catalog.\n\nIt can be run as follows:\n\n.. code:: sh\n\n $ bin/instance doctor healthcheck\n\n\nSurgery\n=======\n\nAttempts to fix issues found by ``healthcheck``. Will do a healtchcheck before\nsurgery, then attempt surgery and finally do a post-surgery healthcheck.\nSurgery is a write operation but changes are only committed to the database if\nthe post-surgery healtcheck yields no more health problems.\nCurrently the set of available surgery is limited to problems we have observed\nin production.\n\n\nIt can be run as follows:\n\n.. code:: sh\n\n $ bin/instance doctor surgery\n\n\nThere is also a `--dry-run` parameter that prevents committing changes.\n\n.. code:: sh\n\n $ bin/instance doctor --dry-run surgery\n\n\nDebugging\n=========\n\nIf you need to debug/analyze issues that ``ftw.catalogdoctor`` cannot fix yet\nhave a look at the ``debug`` module. It provides useful functions to ``pprint``\nor inspect catalog state.\n\n\nInstallation\n============\n\n- Add the package to your buildout configuration:\n\n::\n\n [instance]\n eggs +=\n ...\n ftw.catalogdoctor\n\n\nCompatibility\n-------------\n\nPlone 4.3.x\nPlone 5.1.x\n\n\nDevelopment\n===========\n\n1. Fork this repo\n2. Clone your fork\n3. Shell: ``ln -s development.cfg buildout.cfg``\n4. Shell: ``python bootstrap.py``\n5. Shell: ``bin/buildout``\n\nRun ``bin/test`` to test your changes.\n\nOr start an instance by running ``bin/instance fg``.\n\n\nLinks\n=====\n\n- Github: https://github.com/4teamwork/ftw.catalogdoctor\n- Issues: https://github.com/4teamwork/ftw.catalogdoctor/issues\n- Pypi: http://pypi.python.org/pypi/ftw.catalogdoctor\n\n\nCopyright\n=========\n\nThis package is copyright by `4teamwork <http://www.4teamwork.ch/>`_.\n\n``ftw.catalogdoctor`` is licensed under GNU General Public License, version 2.\n\nChangelog\n=========\n\n\n1.2.1 (2024-10-14)\n------------------\n\n- Delay import of Testing module in zopectl command to not accidently create a demo storage. [buchi]\n\n\n1.2.0 (2020-10-06)\n------------------\n\n- Defer reindex until removal from indexes is done, introduce post-op. [deiferni]\n\n\n1.1.0 (2020-09-30)\n------------------\n\n- Drop duplicate objects from Acquisition when fixing UID index. [deiferni]\n- Implement reindexing objects when still traversable for orphaned rids. [deiferni]\n- Check for shorter path rather than direct parent in surgery safeguard. [deiferni]\n- Use extra rid removal surgery for new symptoms. [deiferni]\n\n\n1.0.0 (2019-07-08)\n------------------\n\n- Initial implementation.\n",
"bugtrack_url": null,
"license": "GPL2",
"summary": "ftw.catalogdoctor",
"version": "1.2.1",
"project_urls": {
"Homepage": "https://github.com/4teamwork/ftw.catalogdoctor"
},
"split_keywords": [
"ftw",
"catalogdoctor"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e85912ce4b1aaf4681d1055ddb4b561b68b3af448618b253fdab245cb97021a3",
"md5": "dc9218d541a9f9982841e35c3dfd937c",
"sha256": "fd243d5d9b6a2d1fe73d012b369107e72e5f13e2ac15667422c75412f8f62fb3"
},
"downloads": -1,
"filename": "ftw.catalogdoctor-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "dc9218d541a9f9982841e35c3dfd937c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 32992,
"upload_time": "2024-10-14T07:11:46",
"upload_time_iso_8601": "2024-10-14T07:11:46.099225Z",
"url": "https://files.pythonhosted.org/packages/e8/59/12ce4b1aaf4681d1055ddb4b561b68b3af448618b253fdab245cb97021a3/ftw.catalogdoctor-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-14 07:11:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "4teamwork",
"github_project": "ftw.catalogdoctor",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "ftw.catalogdoctor"
}