Databases Made Simple
Personal Database
From a simple task list to a collection that keeps tabs on your books, Symphytum lets you quickly and easily build databases for storing and working with any type of data imaginable.
You rarely need a full-blown relational database if you only want to store recipes, notes, tasks, and other simple pieces of data. What you need is a tool that makes it possible to quickly create simple, easy-to-use, database-powered applications with a minimum of effort and technical knowledge. Enter Symphytum [1]. You'll be hard-pressed to find a more straightforward and user-friendly application for creating personal databases. With absolutely no knowledge of database theory and design, you can build databases for pretty much any purpose. More importantly, the resulting databases feature a polished interface that doesn't require a degree in computer science to use.
Getting Started
Symphytum uses SQLite as its database engine. Being lightweight, robust, and mature, SQLite is a popular choice for powering database-driven applications. However, Symphytum hides all the technical intricacies behind a user-friendly interface, so you are never exposed to the scary database underbelly.
The project's GitHub site offers packaged versions for popular Linux distributions. You'll also find an AppImage self-contained executable. It's larger than the packages for specific distributions, and it might run slightly slower on your machine. But it requires no installation and comes with all required dependencies. As such, it offers the easiest and fastest way to run Symphytum on practically any Linux system. Grab the latest AppImage file from the project's Releases page, make the downloaded file executable using the command
chmod +x Symphytum-x86_64.AppImage
and then double-click on the file to launch Symphytum.
Before you create your first database, you might want to tweak a few settings. Unlike any other regular desktop application, Symphytum doesn't create a lot of separate files. Instead, each application in Symphytum is just a separate table of the data.db
database. This file, along with the files you attach to individual records, is stored in a separate folder. By default, this folder is hidden in your home directory, and you might want to choose another location for it to make backup easier. To do this, choose Tools | Preferences, switch to the General section, and specify the desired path and directory name. While you are at it, you might want to change the default font and font size. Switch to the Appearance section and specify the font and size you want in the appropriate fields. Finally, switch to the Advanced section, and enable the option that improves performance by caching images. This option requires more RAM, but as it significantly improves performance, it's worth enabling in most situations.
Although Symphytum is a single-user application, it does support synchronization. With this functionality enabled, you can access your data from any other machine running Symphytum. To activate and configure the synchronization feature, switch to the Cloud Sync section, select Enabled from the Status drop-down list, and press Close. This launches a simple wizard that guides you through the process of setting up syncing. Symphytum supports the Dropbox and MEGA synchronization services. Before you can use the latter, you need to install and configure the MEGAcmd
[2] command-line tool. If you prefer to enable and set up synchronization later, you can do it by choosing Tools | Cloud synchronization in the main toolbar. You can use any other synchronization service, too. You just have to configure your preferred cloud syncing tool to synchronize Symphytum's working directory.
Working with Collections
Databases in Symphytum are called collections, and the application comes with an example collection for you to explore. Each collection can contain a number of fields of different types and two views: Form and Table. You can use the appropriate buttons in the main toolbar to browse through the existing collection entries, as well as create, duplicate, and remove records. The Table view (Figure 2) allows you to sort records in ascending or descending order by clicking on the desired field heading. For example, to sort all records in the example database alphabetically, click on the Name field heading. Click on it again to reverse the order.
Need to find a specific record? Start typing the desired search criteria in the Search field to see the list of matching records. The search feature is a one-trick pony: It searches through all available fields, and that's all it can do.
Building a collection from scratch in Symphytum is straightforward. If you travel a lot, you might want to set up a collection to keep track of the cities you have visited (Figure 3). Press the New Collection button in the main toolbar, or choose File | New | New Collection to create a new collection. Replace the default collection name with a more descriptive title, and the blank collection is ready.
The first order of business is to add at least one field to the collection. In this case, you can start by creating a text field to store the name of the city. Press the appropriate button in the main working area, select Text from the list of available field types, give the field a name (it will appear as the field's label in the Form view), and press Next (Figure 4). You can enable the Required field option if you want to make the field mandatory (i.e., it must not be empty). Press Finish to add the field. Switch then to the Form view using the appropriate button. To adjust the field's size and position, click on the field's label to select the field. Adjust the field's width and height by dragging the selection points with the mouse. To move the field, click and hold the field's label and drag the field to the desired position. Using the New Field button in the main toolbar (or the Ctrl+Shift+N keyboard shortcut), you can add as many fields as you like.
With Symphytum, you are not limited to text fields. If you want to add the dates on which you visited the city, create two date fields: one for the arrival date and another for the departure date. When adding a date field, Symphytum allows you to choose a date format. Symphytum also lets you enable the reminder option for the date field, so the application will display a reminder when the date in the date field is reached. This simple option can come in useful when working with collections containing deadlines (e.g., a simple task list). Symphytum even has a dedicated view for listing all upcoming reminders (View | Date reminder list).
Symphytum supports other field types, too. The Image field type makes it possible to insert images into records. Symphytum can handle most popular image formats, including PNG, JPEG, GIF, TIFF, and even vector-based SVG. Keep in mind that when you add an image to a record, Symphytum doesn't insert the image file into the record. Instead, the application saves the image file in the dedicated files directory inside Symphytum's working folder and then creates a reference to this file in the record. Why is this important? Because if you want to keep images in your collection safe, you have to make sure that you back up the entire content on Symphytum's working folder, including the files
directory.
The File List field type allows you to add multiple files to a record. To add a file or multiple files, you can either drop them onto the File List field in the Form view or use the dedicated button below the field. The Remove button lets you delete individual files, while the Export button can come in handy when you need to save a file in the record to a local directory.
If you want to add a drop-down list containing a list of predefined entries, the Combobox field type is what you need. Finally, the Checkbox field type allows you to add options that can be toggled, while the Progress field type makes it possible to add an adjustable progress bar to the record. Combined, these three field types are ideal for creating collections that can help you to manage tasks and keep tabs on your projects. Add to this a Date field with the reminder option enabled, and you have a simple way to keep track of your deadlines.
Symphytum doesn't distinguish between the design mode (where you add fields and design forms) and the work mode (where you manage records and populate them with data). While this is convenient, this also means that you may sometimes select a field instead of focusing the cursor on it and even inadvertently resize or move the field. To prevent this from happening, Symphytum lets you lock the Form view using the Lock button in the main toolbar. There is another creature comfort: the Tools | Database | Free unused space command can clean up and optimize the underlying database to reduce its size.
If you already have data in the comma-separated (CSV) format, Symphytum allows you to import them and create a new collection on-the-fly. To import existing data, choose File | Import and follow the import guide. You can also export data (Figure 5) from the existing collection using File | Export. The import and export functionality in Symphytum does have a serious limitation: It cannot import and export files and images (since they are stored as references and not inserted directly into records). If you need to move data from one Symphytum instance to another, you can use the backup and restore feature instead (Figure 6). Choose File | Backup and follow the guide to export Symphytum data into a single .syb
file. You can then import it into Symphytum running on another machine via File | Backup and choosing the restore option.
Conclusion
Symphytum won't rival advanced database applications like LibreOffice Base and Kexi. But what it lacks in functionality, it makes up for in ease of use. And honestly, unless you are building complex relational databases, you'll hardly ever need more than what Symphytum has to offer.
Infos
- Symphytum: https://github.com/giowck/symphytum
- MEGAcmd: https://mega.nz/cmd
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
There's a New Open Source Terminal App in Town
Ghostty is a new Linux terminal app that's fast, feature-rich, and offers a platform-native GUI while remaining cross-platform.
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.