A CKAN extension that checks and cleans the FileStore.
Compatibility with core CKAN versions:
CKAN version | Compatible? |
---|---|
2.6 and earlier | not tested |
2.7 | not tested |
2.8 | not tested |
2.9 | Yes |
2.10 | not tested |
To install ckanext-cleanup:
-
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
-
Clone the source and install it on the virtualenv
git clone https://github.com/Keitaro/ckanext-cleanup.git cd ckanext-cleanup pip install -e . pip install -r requirements.txt
-
Add
cleanup
to theckan.plugins
setting in your CKAN config file (by default the config file is located at/etc/ckan/default/ckan.ini
). -
Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:
sudo service apache2 reload
None at present
To install ckanext-cleanup for development, activate your CKAN virtualenv and do:
git clone https://github.com/Keitaro/ckanext-cleanup.git
cd ckanext-cleanup
python setup.py develop
pip install -r dev-requirements.txt
Please make sure You have full backup before using any of the cli commands
- Check-resource - Checks if for all resources by id from database exists resource file in storage
ckan -c ../ckan/production.ini check-resource
- Resource-table-cleanup - Checks resources by id and state and deletes the rows where state is deleted and there is no dataset for that resource
ckan -c ../ckan/production.ini resource-table-cleanup
- Resource-filestore-cleanup - Checks for resource in filestore exists row in resource table and deletes the resource if no row is found.
When used without arguments it just lists the files. Use --delete to actually delete the resources
By default it lists and puts in log all resources. Use --list-deleted to list only resources that need to be deleted/are deleted
ckan -c ../ckan/production.ini resource-filestore-cleanup
To run the tests, do:
pytest --ckan-ini=test.ini
If ckanext-cleanup should be available on PyPI you can follow these steps to publish a new version:
-
Update the version number in the
setup.py
file. See PEP 440 for how to choose version numbers. -
Make sure you have the latest version of necessary packages:
pip install --upgrade setuptools wheel twine
-
Create a source and binary distributions of the new version:
python setup.py sdist bdist_wheel && twine check dist/*
Fix any errors you get.
-
Upload the source distribution to PyPI:
twine upload dist/*
-
Commit any outstanding changes:
git commit -a git push
-
Tag the new release of the project on GitHub with the version number from the
setup.py
file. For example if the version number insetup.py
is 0.0.1 then do:git tag 0.0.1 git push --tags