A long time ago you’ve written diaries in MacJournal but then switched into Day One as you started to be more on mobile. There was a time when you’ve tried migrating a journal from MacJournal but Day One’s Import MacJournal File command failed with an error like:
Unable to import file
The file did not contain a date for the entry.
“No sweat, I’ll just keep MacJournal around whenever I feel the need to read my old diaries,” you might thought to yourself. All was fine and dandy.
Then macOS 10.15 “Catalina” is coming around the corner. Despite all the new features and enhancements, it removed support for 32-bit applications. Unfortunately MacJournal 5 is still a 32-bit application. Hence the clock is ticking before “this fall” when your old diaries become inaccessible since MacJournal 5 stops working in the new operating system.
What if you can seamlessly access archived journals across all of your devices? What if you can confidently upgrade in Catalina’s “day one”? (pun intended).
Well, if your archived journals are in MacJournal 5 and your current journaling system is Day One, this article shows you how to migrate your data so that you can finally say goodbye to that 32-bit app and be ready for Catalina.
Migration Steps
In a nutshell, these are the steps needed to move a journal from MacJournal into Day One. If you have multiple journals, follow these steps with one journal at a time.
- Export the journal from MacJournal as a single file.
- Create a new journal in Day One, as a “staging area” for your entries.
- Install Day One’s Command Line Interface (CLI).
- Run the
MacJournalToDayOne
import script to create entries in Day One based on your exported file. - Inspect the imported journal in Day One.
Pre-requisites
Before you begin, take note that this process and the import script was tested on the following software configuration. Make sure that you have these applications at hand or have a compatible alternative.
- MacJournal 5.2.8
- Day One 4.0
- macOS 10.14 “Mojave”
Exporting from MacJournal
This process would export a journal in MacJournal into a plain-text version that can be read by the import script later on.
Follow these steps to begin the export.
- In MacJournal, select a journal.
- Select command
File|Export...
from the main menu bar. - Specify these as the export parameters:
File format
isText Format
.Metadata
isDate & Topic
Encoding
isUnicode (UTF-8)
Use One File Per Entry
is unchecked (that is, export all entries in the journal as one file)
- Click on Export.
Creating a New Journal in Day One
This new journal would be used as the destination for entries imported from MacJournal. Having an empty journal created would be useful for inspection of the import results and maybe re-start the import if necessary.
- In the Day One app, select
Day One|Preferences...
from the main - Within Day One’s Preferences dialog, click the
Journals
tab. - Click the
+
button to create a new journal. - Type in a new journal name — for example
MacJournal Import
— and then clickCreate Journal
. - Take note of this new journal name to be used in subsequent steps.
Installing Day One CLI
The Day One CLI is needed by the MacJournalToDayOne
script to communicate with the Day One app and create entries in it. Follow the instruction in Day One’s site to install the tool. When done, open the Terminal app and run the following command to verify that it is installed correctly:
dayone2 --help
If you see the reference to use the CLI, then it is installed correctly. If you see a command not found error, then something went wrong and you probably should contact Day One’s support staff to get it installed.
Running the MacJournalToDayOne
Script
The MacJournalToDayOne
script would read the text file exported by MacJournal and create the corresponding entries in Day One. It works by going through the entries in the exported file, and calling the Day One CLI for each of those entries.
Follow these steps to download, install, and run the script.
-
Go to the MacJournalToDayOne release page and download its latest stable release.
-
Open Terminal to extract the archive:
tar -xvf MacJournalToDayOne-1.0.0.tgz
-
Still in Terminal, run the script extracted from the previous step,
MacJournalToDayOne.py
and provide it with the MacJournal export file and the destination journal name in Day One../MacJournalToDayOne.py "${export-file}" --journal="${journal-name}"
From the example above, replace
${export-file}
with name of the file that was exported from MacJournal and${journal-name}
with the name of the journal in Day One. Remember to enclose these with double quotation marks, especially if the names contains spaces. Be sure to use the new journal name as the target journal so that you can repeat the process in case anything went wrong.
The import process would probably take a few minutes if there are many entries inside the journal.
Inspect the Results
Launch Day One and randomly sample a few entries in the new journal to compare it with the ones exported from MacJournal. In case something is not right or went missing, you can delete these imported entries and start the process again.
This is the main reason why you should import into a temporary staging journal – so that the imported entries doesn’t get mixed with your existing ones until you are completely satisfied.
Next Steps
When you are satisfied with the imported entries in the staging journal, you can tag them, say for example add a “MacJournal” tag, to differentiate it with your newer entries. Then you can move them into your main journal and delete the staging journal afterwards.