Skip to main content

Projects

Ducklet uses Ducklet projects (files with the file extension .ducklet) to capture SQLite databases and SQL queries.

A Ducklet projects stores:

  • A list of SQLite connections with References to SQLite files.
  • The content of up to 5 SQL editors per connection.

You can double click the project file to open your SQLite workspace.

A Ducklet project does not copy or move your SQLite database file from its location, instead it stores a reference to the file on disk.

As an application distributed via the Mac App Store, Ducklet uses the App Sandbox, so the stored reference is not just the path, but a URL bookmark, that gives Ducklet the ability to access the SQLite database.

Therefore, the Ducklet project cannot and should not be shared.

Version control friendly

A Ducklet project is a directory with a certain structure and files comprising a valid Ducklet project.

The directory structure and the files within might change in the future (there are plans to move to a SQLite database 😎 ) we aim to keep this directory structure version control friendly.

As of version 1.0 it looks like this:

$> find Test-Import.ducklet
Test-Import.ducklet
Test-Import.ducklet/project.json
Test-Import.ducklet/data
Test-Import.ducklet/data/databases.json

# List the content of the SQL editor tabs
$> jq --raw-output '.[].editors.[].sql' Test-Import.ducklet/data/databases.json
DROP TABLE IF EXISTS [InvoiceLine];
DROP TABLE IF EXISTS [PlaylistTrack];
DROP TABLE IF EXISTS [Track];
...

Even though it is safe to put the Ducklet projects under version control, please do not edit the files within the Ducklet project by hand. It might render the project unusable.