github byvfx/go-notion-md-sync v0.13.0

latest release: v0.16.0
9 months ago

Release v0.13.0 - Unified Database Handling

Release Date: July 19, 2025

Overview

Version 0.13.0 introduces unified database handling, making it seamless to work with Notion databases. The pull command now automatically detects and exports databases as CSV files alongside page content, eliminating the need for separate database commands.

Key Features

1. Unified Database Handling

  • Automatic Detection: Pull command now automatically detects child databases within pages
  • Seamless Export: Databases are exported as CSV files during the normal pull operation
  • Integrated Workflow: No need for separate commands - everything happens in one pull

2. Intelligent Database Naming

  • Meaningful Names: CSV files are named based on the actual database title
  • Smart Fallbacks: If database has no title, falls back to page name with counter
  • Examples:
    • Before: MD_Test_db1.csv
    • After: Product_Inventory_Database.csv

3. Simplified CLI

  • Removed: Separate database command and subcommands
  • Integrated: All database functionality is now part of the pull workflow
  • Cleaner: Fewer commands to remember, more intuitive usage

Technical Improvements

Enhanced Pull Operation

// Automatically detects and exports databases
func (e *engine) exportChildDatabases(ctx context.Context, pageID, filePath, pageTitle string) ([]DatabaseReference, error)

Smart CSV Naming

// Uses actual database title for meaningful filenames
if database, err := e.notion.GetDatabase(ctx, databaseID); err == nil {
    if len(database.Title) > 0 && database.Title[0].PlainText != "" {
        dbTitle = database.Title[0].PlainText
        csvFileName = fmt.Sprintf("%s.csv", sanitizedDbTitle)
    }
}

Automatic Markdown Integration

  • Database references automatically added to markdown files
  • Clean links to CSV files for easy access
  • Example: - [Product Inventory Database](./Product_Inventory_Database.csv)

Usage Example

# Pull all pages and databases in one command
notion-md-sync pull --verbose

# Output structure:
docs/
└── Sales Report/
    ├── Sales Report.md           # Page content
    ├── Q1_Sales_Data.csv        # First database (named by title)
    └── Customer_Database.csv     # Second database (named by title)

Breaking Changes

  • Removed Commands: The database export, database import, and database create commands have been removed
  • Migration: Use the standard pull command for database exports

Bug Fixes

  • Fixed timeout issues when pulling large page hierarchies
  • Improved error handling for database operations
  • Better progress reporting during pull operations

Performance

  • Maintained efficient concurrent operations from v0.11.0
  • No performance degradation with unified handling
  • Cleaner codebase with reduced complexity

What's Next

Future releases will focus on:

  • Two-way database sync (CSV to Notion updates)
  • Advanced database filtering during pull
  • Custom CSV formatting options

Upgrade Instructions

  1. Update to v0.13.0
  2. Remove any scripts using the old database command
  3. Use pull command for all database exports
  4. CSV files will be created alongside markdown files

Don't miss a new go-notion-md-sync release

NewReleases is sending notifications on new releases.