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) (coming soon)
- 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.
Recommended: Journiv Backup (Full Export)
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 (Recommended)
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 (coming soon)
Journiv supports importing Day One ZIP exports.
To export from Day One:
Follow the Day One export guide for your platform (iOS, macOS, Android, Web App, or Windows). Make sure to choose the JSON (.zip) export format, then upload that ZIP file into Journiv.
Journiv will import:
- Entries
- Photos
- Tags
- Metadata (date, location, weather, etc.)
Advanced: Using Jimmy for Conversions (not planned yet)
Jimmy (open-source converter) lets you convert various app format to Markdown.
Use this when your app is not natively supported:
Workflow:
Your App → Jimmy → Markdown → JournivThis 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
- Export your data from the SQLite instance
- Set up a new PostgreSQL instance
- Import the export file into the PostgreSQL instance
PostgreSQL → SQLite
- Export your data from the PostgreSQL instance
- Set up a new SQLite instance
- 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 ZIP fails
Make sure you exported JSON format, not HTML or PDF.
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.
Related Topics
- Getting Started - Learn the basics of using Journiv
- Date & Time Handling - Understand timezone handling
- Troubleshooting - Common issues and solutions