Skip to content

Mathesar 0.9.0

Summary

Mathesar 0.9.0 introduces the ability to hide and show columns on the table page, making it easier to focus on the data that matters most. We’ve also added spreadsheet-like cell range selection using Shift + arrow keys, and improved the table editing experience with multi-column resizing and better column management.

This release also includes enhancements to the record page, including the ability to delete records directly from the record view and improved display of column descriptions. Data explorations can now be duplicated with a single click, and filtering workflows have been streamlined with a clear-all button.

Additionally, Mathesar now handles a wider variety of datetime input formats, and editing long descriptions is more intuitive with auto-expanding text areas, along with many other enhancements and bug fixes.

This page provides a comprehensive list of all changes in the release.

Improvements

Hide columns on the table page

Mathesar UI screenshot of hiding the "ID" column

Hide columns dropdown with checkboxes for selecting which columns to show or hide.

The table page now includes a “Hide columns” button that allows you to temporarily hide columns you don’t need to see, making it easier to focus on the data that matters most. You can hide columns individually or use column context menu actions to hide multiple selected columns at once.

When adding new records, any required columns that are hidden will automatically be shown with a notification, ensuring you can always complete required fields.

Related work:

#5139

Enhanced table editing experience

Mathesar now supports resizing multiple columns simultaneously, making it faster to adjust column widths across your table. You can also use Shift + arrow keys to select ranges of cells, bringing spreadsheet-like navigation to Mathesar tables.

Related work:

#5075 #5101

Delete directly on the record page

The record page now includes a delete button, allowing you to delete records directly from the record view without navigating back to the table page. Column descriptions are also now displayed via an info icon with a tooltip on hover, keeping the interface clean while making context easily accessible.

Related work:

#5156 #5112

Data exploration duplication

Mathesar UI screenshot of duplicating an exploration

You can now duplicate data explorations directly from the context menu on the schema page. This makes it easy to create variations of existing explorations or use them as starting points for new queries.

Related work:

#5079

Improved datetime parsing

Mathesar now correctly handles datetime inputs that omit leading zeros or seconds, such as “2000-01-01 9:00:00” or “2000-01-01 09:00”. Previously, these formats would be sent to PostgreSQL unchanged, potentially causing unexpected timezone shifts. All valid timestamp inputs are now consistently normalized before being sent to the backend.

Related work:

#5068

Streamlined filtering

A “Clear all filters” button has been added to the filter header, appearing automatically when filters are active. This provides a quick way to reset your view and start fresh with filtering.

Related work:

#5136

Additional UI improvements

  • Column reordering in table widgets now reflects changes made in the main table view #4985
  • Improved editing experience for long table and column descriptions with auto-expanding text areas #5104

Bug fixes

  • Refactor cell updating logic to fix bugs #5097
  • Fix summarize dialog cancel #5108
  • Fix Save button not enabling while editing exploration name or description #5137
  • Fix date parsing mismatch when pasting outside edit mode #5061
  • Fix: Make Distinct List work for Time with Timezone columns (fixes #2964) #5148
  • Fix: Display error page for non-existent records instead of blank form (fixes #4896) #5044
  • Apply unique key to explorer dropdown state #5138
  • Fixes issue #5184 #5185
  • Apply date/time preset values to cell before closing picker #5172
  • Revert “issue 4890 - Allow renaming of primary key (Mathesar ID) columns” #5167
  • Fixed the truncation issue #5133
  • Fix: Remove unused import makeCellId from records store - issue #5164 #5179

Documentation

  • Add forms screenshots readme #5094
  • Fix broken community links in CONTRIBUTING.md #5093

Maintenance

  • Remove __msar.exec_ddl #5113
  • Add tests for prepare_temp_table_for_import and insert_from_select #4993
  • Updates for file translations/en/LC_MESSAGES/django.po in fr #5134
  • Fix RPC function docstrings for accuracy and consistency #5080
  • Replace Number() with a util function for casting column ids from string to number #5102
  • Remove explorations.run_saved RPC endpoint #5142
  • Remove explorations.run_saved API from frontend #5147
  • Bump pymdown-extensions from 10.16 to 10.16.1 in /docs #5121

Upgrading to 0.9.0

PostgreSQL 13 and Python 3.9 no longer supported

Mathesar 0.8.0 ended official support for PostgreSQL 13 and Python 3.9. Please upgrade to PostgreSQL 14+ and Python 3.10+ before upgrading to Mathesar 0.9.0.

For installations using Docker Compose

If you have a Docker compose installation, run the command below:

docker compose -f /etc/mathesar/docker-compose.yml up --pull always -d

Your installation directory may be different

You may need to change /etc/mathesar/ in the command above if you chose to install Mathesar to a different directory.

For direct installations of Mathesar on Linux, macOS, or WSL

Mathesar provides an install script that automates both fresh installs and upgrades for standalone (non-Docker) installations.

Follow the steps below to upgrade Mathesar:

  1. Enter your installation directory into the box below and press Enter to personalize this guide:

    • Do not include a trailing slash.
    • Do not use any variables like $HOME.
  2. Go to your Mathesar installation directory.

    cd xMATHESAR_INSTALL_DIRx
    

    Note

    Your installation directory may be different from above if you used a different directory when installing Mathesar.

  3. Download and run the install script for 0.9.0

    curl -sSfL https://github.com/mathesar-foundation/mathesar/releases/download/0.9.0/install.sh -o install.sh
    chmod +x install.sh
    
    ./install.sh .
    

  4. Replace your gunicorn systemd service with a Mathesar systemd service

    1. Disable and stop the existing gunicorn service

      systemctl disable gunicorn.service
      systemctl stop gunicorn.service
      

    2. Follow the steps in Run Mathesar as a systemd service from the installation guide

    3. Remove the gunicorn service file

      sudo rm /lib/systemd/system/gunicorn.service
      

  5. Update your Caddyfile

    1. Use the configuration shown in Install and configure Caddy in the installation guide, and update your Caddyfile accordingly

    2. Ensure that your domains are specified directly in the first line of the Caddyfile

    3. Restart your Caddy service

      systemctl restart caddy.service
      

Tip

If you’re running Mathesar only on localhost and do not want it to run as a service, you could:

  1. Remove the gunicorn and caddy services
  2. Start Mathesar manually with:
    mathesar run