Moving Data between Collections¶
Entries can be exported from a lesana collection to another using the
lesana export
command and a jinja2 template.
The template should generate a yaml file that is a valid lesana entry
for the destination collection and it can use the fields of the starting
collection as variables. The variable entry
is also available and
gives complete access to the entry of the original collection, so fields
with names that aren’t valid jinja templates can be accessed as
entry.data[<field-name>]
.
E.g. to convert between a collection with fields name
,
short-desc
, desc
to a collection with fields name
,
description
one could use the following template:
name: {{ name }}
description: |
{{ entry.data.[short-desc] }}
{{ desc | indent(width=4, first=False) }}
From the origin collection you can then run the command:
lesana export <path/to/destination/collection> <path/to/template>
to export all entries.
You can also export just a subset of entries by adding a xapian query
with the parameter --query
; you can test the search using:
lesana search --all <some search terms>
and then actually run the export with:
lesana search --query '<some search terms>' <destination> <template>
note that in this second command the spaces in the search query have to be protected from the shell.