📚 planDB Documentation

Complete guide to SQLite & SQLCipher database comparison

Installation

planDB is available for Linux, macOS, and Windows. Choose your platform below:

Linux

Ubuntu / Debian (.deb)

wget https://github.com/planp1125-pixel/plandb_mvp/releases/download/plandb-v0.5.9/plandb_0.5.9_amd64.deb
sudo dpkg -i plandb_0.5.9_amd64.deb

Any Linux Distribution (AppImage)

wget https://github.com/planp1125-pixel/plandb_mvp/releases/download/plandb-v0.5.9/plandb_0.5.9_amd64.AppImage
chmod +x plandb_0.5.9_amd64.AppImage
./plandb_0.5.9_amd64.AppImage
Note: If you encounter dependency issues, install required packages:
sudo apt install libwebkit2gtk-4.0-37 libgtk-3-0

macOS

Installation Steps

  1. Download planDB_aarch64.dmg from the releases page
  2. Open the .dmg file
  3. Drag planDB to your Applications folder
  4. Launch from Applications
Mac Security Warning: If you see "planDB cannot be opened because the developer cannot be verified", run:
xattr -cr /Applications/planDB.app
Then try opening again.

Windows

MSI Installer (Recommended)

  1. Download planDB_0.5.9_x64_en-US.msi
  2. Double-click to run installer
  3. Follow installation wizard
  4. Launch from Start Menu

Portable .exe

Download planDB_0.5.9_x64-setup.exe and run directly. No installation required.

Getting Started

First Launch

When you first open planDB, you'll see the main comparison interface with two database selection panels.

Basic Workflow

  1. Select Database 1: Click "Select Database" and choose your first SQLite/SQLCipher file
  2. Select Database 2: Click "Select Database" for the second database
  3. Enter Password (if encrypted): For SQLCipher databases, enter the encryption password
  4. Compare: Click "Compare Databases" to see differences
  5. Generate Patches: Review differences and generate SQL patches
Tip: planDB remembers your last used databases for quick access!

Features

Schema Comparison

planDB compares all schema elements between databases:

The comparison result shows:

Data Comparison

Compare actual data row-by-row:

Patch Generation

planDB generates bidirectional SQL patches:

Forward Patch (Database 1 → Database 2)

Applies all changes from Database 1 to make Database 2 match it.

-- Example forward patch
ALTER TABLE users ADD COLUMN email TEXT;
INSERT INTO users (id, name, email) VALUES (3, 'Alice', 'alice@example.com');
UPDATE users SET status = 'active' WHERE id = 1;

Reverse Patch (Database 2 → Database 1)

Rollback patch to undo changes if needed.

-- Example reverse patch  
UPDATE users SET status = 'inactive' WHERE id = 1;
DELETE FROM users WHERE id = 3;
ALTER TABLE users DROP COLUMN email;
Best Practice: Always download the reverse patch before applying forward changes. This gives you a safety net for rollback!

SQLCipher Support

planDB has native SQLCipher encryption support:

Working with Encrypted Databases

  1. Select your SQLCipher database file
  2. Enter the encryption password when prompted
  3. planDB handles encryption/decryption automatically
  4. Your password is never stored or transmitted

Troubleshooting

macOS: "App cannot be opened"

Error: "planDB cannot be opened because the developer cannot be verified"

Solution:

xattr -cr /Applications/planDB.app

This removes the quarantine attribute. Then try opening again.

Linux: Missing Dependencies

Error: Library errors on launch

Solution:

sudo apt install libwebkit2gtk-4.0-37 libgtk-3-0 libayatana-appindicator3-1

Windows: SmartScreen Warning

Error: "Windows protected your PC"

Solution: Click "More info" → "Run anyway"

SQLCipher: Wrong Password

Error: "Database is encrypted or is not a database"

Solution: Verify your password is correct. SQLCipher databases cannot be opened without the correct password.

Large Databases: Slow Comparison

Issue: Comparison takes a long time

Tips:

Frequently Asked Questions

Can I compare databases of different sizes?

Yes! planDB handles databases from kilobytes to gigabytes. The comparison is done efficiently using streaming to manage memory usage.

Does planDB work offline?

Yes, completely offline. Your databases never leave your machine. No internet connection required.

Can I compare SQLite with SQLCipher?

Yes! You can compare an unencrypted SQLite database with an encrypted SQLCipher database, or any combination.

How do I apply the generated patches?

You have two options:

  1. Direct Apply: Use planDB's built-in apply feature
  2. Manual Apply: Export the SQL patch and run it with sqlite3 or your preferred tool

Where can I get help?

Additional Resources

Need more help? Feel free to reach out via email or open a discussion on GitHub. We're here to help!
Download planDB