From 78ee138ad755613767ff4997c9c26de37e08d001 Mon Sep 17 00:00:00 2001 From: Daniel Quinn Date: Thu, 11 Feb 2016 12:25:00 +0000 Subject: [PATCH] Added migration and changelog updates --- docs/changelog.rst | 8 +++++ docs/index.rst | 1 + docs/migrating.rst | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 docs/migrating.rst diff --git a/docs/changelog.rst b/docs/changelog.rst index 67320e7fe..e7420dbc0 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,14 @@ Changelog ######### +* 0.0.5 + + * Added support for image files as documents (png, jpg, gif, tiff) + * Added a crude means of HTTP POST for document imports + * Added IMAP mail support + * Added a re-tagging utility + * Documentation for the above as well as data migration + * 0.0.4 * Added automated tagging basted on keyword matching diff --git a/docs/index.rst b/docs/index.rst index ad521aac5..2bf21633b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -30,4 +30,5 @@ Contents requirements setup utilities + migrating changelog diff --git a/docs/migrating.rst b/docs/migrating.rst new file mode 100644 index 000000000..46083533a --- /dev/null +++ b/docs/migrating.rst @@ -0,0 +1,79 @@ +.. _migrating: + +Migrating, Updates, and Backups +=============================== + +As *Paperless* is still under active development, there's a lot that can change +as software updates roll out. The thing you just need to remember for all of +this is that for the most part, **the database is expendable** so long as you +have your files. This is because the file name of the exported files includes +the name of the sender, the title, and the tags (if any) on each file. + + +.. _migrating-updates: + +Updates +------- + +For the most part, all you have to do to update *Paperless* is run ``git pull`` +on the directory containing the project files, and then use Django's ``migrate`` +command to execute any database schema updates that might have been rolled in +as part of the update: + +.. code:: bash + + $ cd /path/to/project + $ git pull + $ cd src + $ ./manage.py migrate + +Note that it's possible (even likely) that while ``git pull`` may update some +files, the ``migrate`` step may not update anything. This is totally normal. + + +.. _migrating-backup: + +Backing Up +---------- + +So you're bored of this whole project, or you want to make a remote backup of +the unencrypted files for whatever reason. This is easy to do, simply use the +:ref:`exporter ` to dump your documents out into an +arbitrary directory. + +Additionally however, you'll need to back up the tags themselves. The file +names contain the tag names, but you still need to define the tags and their +matching algorithms in the database for things to work properly. We do this +with Django's ``dumpdata`` command, which produces JSON output. + +.. code:: bash + + $ cd /path/to/project + $ cd src + $ ./manage.py document_export /path/to/arbitrary/place/ + $ ./manage.py dumpdata documents.Tag > /path/to/arbitrary/place/tags.json + + +.. _migrating-restoring: + +Restoring +--------- + +Restoring your data is just as easy, since nearly all of your data exists either +in the file names, or in the contents of the files themselves. You just need to +create an empty database (just follow the +:ref:`installation instructions ` again) and then import the +``tags.json`` file you created as part of your backup. Lastly, copy your +exported documents into the consumption directory and start up the consumer. + +.. code:: bash + + $ cd /path/to/project + $ rm data/db.sqlite3 # Delete the database + $ cd src + $ ./manage.py migrate # Create the database + $ ./manage.py createsuperuser + $ ./manage.py loaddata /path/to/arbitrary/place/tags.json + $ cp /path/to/exported/docs/* /path/to/consumption/dir/ + $ ./manage.py document_consumer +