JournivJourniv
User Guide

Import & Export

Learn how to import and export your Journiv data, migrate between databases, and import from other journaling apps.

Own your memories forever, safely move your Journiv data between devices, servers, and apps.

Journiv includes a powerful import and export system designed for self-hosting, long-term preservation, and migration from other journaling apps. This page explains how data import/export works and how to use each feature.

What You Can Do

Export your entire Journiv account

Create a ZIP file containing:

  • All journals
  • All entries
  • All media (photos, videos, audio)
  • Tags, prompts, mood logs
  • Journal metadata

Import your data into Journiv

Supports importing from multiple sources:

  • Journiv Backup (recommended)
  • Day One (.zip)
  • Future imports from other apps (not planned yet)
    • Journey
    • Markdown folder (through Jimmy output)

Migrate across databases

Move between:

  • SQLite → PostgreSQL
  • PostgreSQL → SQLite

All using the same export/import system.

A Journiv Backup is the safest and most compatible format for long-term storage.

Each backup is a single ZIP file:

journiv-backup.zip
  ├── journiv.json (your metadata and entries)
  └── media/
       ├── image-uuid.jpg
       ├── video-uuid.mp4
       ├── ...

This file can be:

  • Imported into any Journiv instance
  • Used to migrate between SQLite ↔ PostgreSQL
  • Stored privately as your long-term archive
  • Viewed in the Journiv Export Viewer

Backups never include login information or passwords.

How to Export Your Data

Step 1: Navigate to Export

Go to Settings → Data → Export

Step 2: Choose export type

  • Full Export (all journals and entries) - recommended
  • Selected Journals (export specific journals only)

Step 3: Choose if you want to include media

  • If disabled, only text will be exported
  • If enabled, all media files will be included in the ZIP

Step 4: Create Export

Click Create Export. Exports may take a few seconds to complete, depending on the size of your data.

Once ready, click Download Export to save the ZIP file to your device.

How to Import Data into Journiv

Go to Settings → Data → Import and choose one of the available import types.

Import Types

Journiv Backup

The safest and most complete import method.

Use this when:

  • Migrating across devices
  • Migrating from SQLite to PostgreSQL
  • Migrating to a new server
  • Restoring a previous backup

A Journiv Backup ZIP preserves:

  • Journals
  • Entries
  • Tags
  • Media
  • Prompts
  • Mood logs
  • Metadata

Upload the ZIP and Journiv will process it automatically.

Important: Journiv's import system is designed for backup and restore scenarios, not for version control or tracking changes over time.

If you export your journals and then import them back into the same Journiv instance without first deleting the originals, you will end up with duplicate journals. To avoid duplicates:

  • For migrations: Export from your old instance, then import into a fresh/new instance
  • For restores: Delete the existing journals you're restoring before importing your backup
  • For testing: Use a separate test instance or delete test data before importing

This ensures your data remains clean and organized.

Day One Import

Journiv supports importing your journal entries from Day One using their standard ZIP export format.

How to Export from Day One

  1. Open Day One on your device (iOS, macOS, Android, Web App, or Windows)
  2. Go to SettingsExport
  3. Choose JSON (.zip) as the export format
  4. Select the journals you want to export (or export all)
  5. Save the ZIP file to your device

For detailed instructions, see the Day One export guide.

How to Import into Journiv

  1. Go to Settings → Data → Import in Journiv
  2. Select Day One Import
  3. Choose the ZIP file you exported from Day One
  4. Click Start Import

Journiv will process your Day One export in the background.

What Gets Imported

Journiv imports the following from your Day One export:

  • All journal entries - Your text content, including formatted text and titles
  • Photos and videos - All media files attached to your entries
  • Tags - All tags you've added to entries
  • Location data - Place names, addresses, and coordinates where entries were created
  • Weather information - Temperature, conditions, and weather details recorded with entries
  • Entry dates and times - Original creation dates and timezones are preserved
  • Starred/pinned entries - Entries you marked as favorites in Day One
  • All other metadata - All other metadata from your Day One export is imported for record keeping and future use. This ensure you don't lose any data which was present in Day One. For example Day One tracks creation device, operating system and other information. All of this is stored in the entry additional metadata.

How Your Data is Organized

After import, your Day One entries are organized into a new journal in Journiv. The journal is named after your Day One journal (or "Day One Import" if no journal name is available).

Each entry keeps its original date and time, so your journaling history remains chronological. Location and weather data are preserved and can be viewed in the entry details.

Tips for a Smooth Import

  • Large exports: If you have many years of entries, the import may take several minutes. Be patient and let it complete.
  • Media files: Make sure your Day One export includes photos and videos if you want them imported. Some export formats may exclude media.
  • Multiple journals: If you export multiple Day One journals, each will become a separate journal in Journiv.
  • Rich formatting: Day One's rich text formatting is converted to Markdown, preserving headings, lists, and basic styling.

This guarantees maximum compatibility.

How Journiv Handles Your Imported Data

Journals

Imported entries are grouped into a new journal named after the import source.

Tags

Tags are deduplicated automatically.

Media

Media files are assigned new filenames and stored safely in Journiv's internal media folder.

Mood Logs

Mapped to Journiv's system-defined moods.

If a mood does not match, it is imported as logged text only.

User Accounts

Importing does not modify your login, email, or identity.

External Identities

OAuth / OIDC login data is never imported, unless you are an admin performing a full instance restore.

Migrating Between SQLite and PostgreSQL

Just export your data and import it on the new instance.

No manual SQL tooling needed. No schema conflicts. Safe, portable, guaranteed.

SQLite → PostgreSQL

  1. Export your data from the SQLite instance
  2. Set up a new PostgreSQL instance
  3. Import the export file into the PostgreSQL instance

PostgreSQL → SQLite

  1. Export your data from the PostgreSQL instance
  2. Set up a new SQLite instance
  3. Import the export file into the SQLite instance

Privacy & Security

  • Your data is never sent to any external server
  • Imports and exports happen entirely inside your Journiv instance
  • Backups do not include password hashes or external identity tokens
  • Import jobs are processed securely in the background

Import & Export History

Journiv keeps a full history of:

  • Completed imports/exports
  • Failed attempts
  • In-progress jobs
  • File sizes
  • Entry counts

You can delete past jobs at any time from the Import & Export settings page.

Troubleshooting

Import is stuck at "Processing"

Journiv import and export happens asynchronously in background through Celery. Ensure your Journiv instance is running Celery and has enough resources to handle the job. Large imports may take minutes. Wait for the job to complete.And that the paths match the Markdown image links.

Day One import fails

If your Day One import fails, check the following:

  • Make sure you exported in JSON (.zip) format from Day One, not HTML or PDF
  • Verify the ZIP file is not corrupted (try opening it on your device)
  • Check that the export includes the Journal.json file inside the ZIP
  • Ensure your Journiv instance has enough storage space for the imported entries and media
  • Large exports may take time - check the import status in Settings → Data → Import

I imported my data and see duplicates

If you exported your data and then imported it back into the same Journiv instance without first deleting the originals, you will end up with duplicate journals. To avoid duplicates:

  • For migrations: Export from your old instance, then import into a fresh/new instance
  • For restores: Delete the existing journals you're restoring before importing your backup
  • For testing: Use a separate test instance or delete test data before importing

Export file is too large

If your export file is very large:

  • Try exporting without media first
  • Export specific journals instead of full export
  • Check available disk space on your server

Full instance export

For users privacy Journiv does not support full instance export. You can only export your own data. Please ask all users of you instance to export their data individually by logging in and exporting their data.

Summary

Journiv's Import/Export system gives you complete control over your memories:

  • Portable - Move data between instances easily
  • Private - All processing happens on your server
  • Future-proof - Standard formats ensure long-term compatibility
  • Compatible - Import from major journaling apps
  • Safe - Designed for self-hosting and data ownership
  • Easy - Simple export/import workflow

Whether you're switching devices, moving servers, or bringing years of journaling history into Journiv, you're covered.