LogoRodel Reader

Migration from Legacy

Migrate data from ReaderCopilot (legacy version) to Rodel.Reader

If you previously used ReaderCopilot (the legacy version of Xiao Huan Reader), you can use the official command-line tool to migrate your data to the new Rodel.Reader.

Supported Migration Content

ModuleMigrated Content
BooksMetadata, shelves, reading progress, bookmarks, annotations, PDF annotations, book files
ComicsMetadata, shelves, reading progress, comic files/folders
RSSFeeds, groups, article cache, read/favorite/read-later status
PodcastsPodcast subscriptions, episode cache, playback progress

Note

  • Cover images are not migrated; the new app will automatically extract covers from book/comic files when first opened
  • Bilibili podcast subscriptions cannot be migrated as the new app doesn't support this feature
  • External sync services (like Inoreader, Feedbin) may require re-authentication in the new app

Prerequisites

  1. Install .NET 10 SDK
  2. Know the location of your legacy library directory (usually contains bookStore.sqlite)
  3. Prepare an empty folder as the new library directory

Install Migration Tool

Open a terminal (PowerShell or Command Prompt) and run:

dotnet tool install --global Richasy.ReaderCopilotMigration

After successful installation, you can use the readercopilot-migration command.

Migration Steps

Step 1: Locate Legacy Library Directory

The legacy library directory typically contains:

Legacy Library/
├── bookStore.sqlite      # Book database
├── mangaStore.sqlite     # Comic database (if any)
├── RssCache/             # RSS cache (if any)
├── PodcastCache/         # Podcast cache (if any)
└── Books/                # Book files

If you're unsure of the location, check the "Library Path" in the legacy app's settings.

Step 2: Execute Migration

Run the migration command, replacing paths with your actual directories:

readercopilot-migration -s "D:\ReaderCopilot\Library" -t "D:\RodelReader\Library"

Parameters:

  • -s or --source: Legacy library directory
  • -t or --target: New library directory (must be empty or non-existent)

The tool will display migration progress and statistics.

Step 3: Launch the New App

After migration completes:

  1. Launch Xiao Huan Reader
  2. Select Open Existing Library on the welcome page
  3. Choose the migration target directory (the one specified with -t)

The app will load the migrated data, including all books, comics, RSS feeds, and podcasts.

Advanced Options

Dry Run

Preview what will be migrated before actually performing the migration:

readercopilot-migration -s "D:\OldLibrary" -t "D:\NewLibrary" --dry-run

Dry run doesn't write any data, only displays source data statistics.

Verbose Logging

If issues occur during migration, enable verbose logging:

readercopilot-migration -s "D:\OldLibrary" -t "D:\NewLibrary" -v

Continue on Error

By default, errors trigger a rollback of all changes. To skip errors and continue:

readercopilot-migration -s "D:\OldLibrary" -t "D:\NewLibrary" --continue-anyway

English Service Names

By default, services are created with Chinese names (e.g., "书库", "漫画库"). For English names:

readercopilot-migration -s "D:\OldLibrary" -t "D:\NewLibrary" -l en-US

Complete Parameter List

ParameterShortDescriptionDefault
--source-sLegacy library directoryRequired
--target-tNew library directoryRequired
--lang-lService name languagezh-CN
--dry-runSimulate migrationfalse
--continue-anywayContinue on errorsfalse
--verbose-vShow detailed logsfalse

FAQ

Cannot find bookStore.sqlite

Ensure --source points to the correct legacy library directory. The directory should directly contain the bookStore.sqlite file.

Target directory is not empty

The new library directory must be empty. Choose an empty folder, or delete all files in the target directory and retry.

Some data was not migrated

  • Check if you used --verbose to see detailed errors
  • Verify source files are intact (book/comic files exist)
  • Bilibili podcast subscriptions cannot be migrated (not supported in new version)

External services require re-login

Some external sync services (like NewsBlur) cannot have their authentication migrated directly. After migration, you'll need to re-enter credentials in the new app's settings.

Next Steps

After migration, we recommend reading the following documentation to learn about the new app's features:

On this page