Skill

Automate Database Operations with LibreOffice Base

LibreOffice Base skill for creating ODB databases, connecting to MySQL/PostgreSQL, and building database applications via command-line or Python UNO.

Works with mysqlpostgresqlsqliteodbcjdbc

46
Spark score
out of 100
Updated yesterday
Version 13.1.0

Add to Favorites

Why it matters

Leverage LibreOffice Base to create, manage, and automate database workflows. Connect to various external databases and automate report generation.

Outcomes

What it gets done

01

Create and manage ODB databases

02

Connect to MySQL, PostgreSQL, SQLite, and more

03

Automate data entry forms and custom reports

04

Execute SQL queries and batch data processing

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-base | bash

Capabilities

What this skill does

Query a database

Writes and executes SQL or NoSQL queries on databases.

ETL & sync

Moves and transforms data between systems on a schedule.

Extract

Pulls structured data fields from unstructured text.

Generate code

Writes source code or scripts from a description.

Overview

LibreOffice Base

What it does

LibreOffice Base skill for creating and managing ODB databases with external database connectivity

How it connects

Use when you need to create ODB databases, connect to MySQL/PostgreSQL/SQLite, or build database applications with Python UNO scripting

Source README

LibreOffice Base

Overview

LibreOffice Base skill for creating, managing, and automating database workflows using the native ODB (OpenDocument Database) format.

When to Use This Skill

Use this skill when:

  • Creating new databases in ODB format
  • Connecting to external databases (MySQL, PostgreSQL, etc.)
  • Automating database operations and reports
  • Creating forms and reports
  • Building database applications

Core Capabilities

1. Database Creation

  • Create new ODB databases from scratch
  • Design tables, views, and relationships
  • Create embedded HSQLDB/Firebird databases
  • Connect to external databases

2. Data Operations

  • Import data from CSV, spreadsheets
  • Export data to various formats
  • Query execution and management
  • Batch data processing

3. Form and Report Automation

  • Create data entry forms
  • Design custom reports
  • Automate report generation
  • Build form templates

4. Query and SQL

  • Visual query design
  • SQL query execution
  • Query optimization
  • Result set manipulation

5. Integration

  • Command-line automation
  • Python scripting with UNO
  • JDBC/ODBC connectivity

Workflows

Creating a New Database

Method 1: Command-Line
soffice --base
Method 2: Python with UNO
import uno

def create_database():
    local_ctx = uno.getComponentContext()
    resolver = local_ctx.ServiceManager.createInstanceWithContext(
        "com.sun.star.bridge.UnoUrlResolver", local_ctx
    )
    ctx = resolver.resolve(
        "uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext"
    )
    smgr = ctx.ServiceManager
    doc = smgr.createInstanceWithContext("com.sun.star.sdb.DatabaseDocument", ctx)
    doc.storeToURL("file:///path/to/database.odb", ())
    doc.close(True)

Connecting to External Database

import uno

def connect_to_mysql(host, port, database, user, password):
    local_ctx = uno.getComponentContext()
    resolver = local_ctx.ServiceManager.createInstanceWithContext(
        "com.sun.star.bridge.UnoUrlResolver", local_ctx
    )
    ctx = resolver.resolve(
        "uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext"
    )
    smgr = ctx.ServiceManager
    
    doc = smgr.createInstanceWithContext("com.sun.star.sdb.DatabaseDocument", ctx)
    datasource = doc.getDataSource()
    datasource.URL = f"sdbc:mysql:jdbc:mysql://{host}:{port}/{database}"
    datasource.Properties["UserName"] = user
    datasource.Properties["Password"] = password
    
    doc.storeToURL("file:///path/to/connected.odb", ())
    return doc

Database Connection Reference

Supported Database Types

  • HSQLDB (embedded)
  • Firebird (embedded)
  • MySQL/MariaDB
  • PostgreSQL
  • SQLite
  • ODBC data sources
  • JDBC data sources

Connection Strings

### MySQL
sdbc:mysql:jdbc:mysql://localhost:3306/database

### PostgreSQL
sdbc:postgresql://localhost:5432/database

### SQLite
sdbc:sqlite:file:///path/to/database.db

### ODBC
sdbc:odbc:DSN_NAME

Command-Line Reference

soffice --headless
soffice --base  # Base

Python Libraries

pip install pyodbc    # ODBC connectivity
pip install sqlalchemy # SQL toolkit

Best Practices

  1. Use parameterized queries
  2. Create indexes for performance
  3. Backup databases regularly
  4. Use transactions for data integrity
  5. Store ODB source files in version control
  6. Document database schema
  7. Use appropriate data types
  8. Handle connection errors gracefully

Troubleshooting

Cannot open socket

killall soffice.bin
soffice --headless --accept="socket,host=localhost,port=8100;urp;"

Connection Issues

  • Verify database server is running
  • Check connection string format
  • Ensure JDBC/ODBC drivers are installed
  • Verify network connectivity

Resources

Related Skills

  • writer
  • calc
  • impress
  • draw
  • workflow-automation

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.