PhpStorm 2025.1 Help

Data loaders

Enable the Database Tools and SQL plugin

This functionality relies on the Database Tools and SQL plugin, which is bundled and enabled in PhpStorm by default. If the relevant features are not available, make sure that you did not disable the plugin.

  1. Press Ctrl+Alt+S to open settings and then select Plugins.

  2. Open the Installed tab, find the Database Tools and SQL plugin, and select the checkbox next to the plugin name.

Data loaders are specialized scripts that allow you to import your tabular data files into a database. They also enable the visual representation of this data in the data editor. The view of such files in the data editor is read-only.

  • Data display in data editor. For example:

    1. Excel

      Contents of an Excel file are displayed in the data editor
    2. JSON

      Contents of a JSON file are displayed in the data editor

      To disable the Data tab with table view for JSON files, in the Advanced Settings settings page  Ctrl+Alt+S, set the Open file as table if detected by scripted loader to Table-first formats.

    For more information about viewing data in data editor, refer to Data editor and viewer.

  • Data import from a file to a database

    Import tabular data file: Tabular data Source settings
    Import tabular data file: mapping settings

    For more information about importing data from a tabular data file to a database, refer to Import data from tabular data files.

To locate data loaders, open the Project tool window and navigate to Scratches and Consoles | Extensions | Database Tools and SQL | data | loaders.

Custom data loader

You can also create and use your own scripted data loader that you can write in Groovy.

Consider starting your script with the following code line as an example:

// IJ: extensions = json displayName = JSON tableFirstFormat=false

The keywords are as follows:

  • extensions: List of the file extensions the loader works with. Uses ; as a separator.

  • displayName: Name of the custom loader.

  • tableFirstFormat: Defines whether the format is table-first. Default: true.

In your script, also add a function that receives the following context: path to the file and the DataConsumer interface. For example, loadJson:

LOADER.load { ctx -> loadJson(ctx.getParameters()["FILE"], ctx.getDataConsumer()) }

For the DataConsumer interface, definition is as follows:

interface DataConsumer { void consumeColumns(String[] names, Class<?>[] types); void consume(Object... row); }
  • void consumeColumns(String[] names, Class<?>[] types);: This method takes in the column names as the names array and the corresponding data types for each column as the types array.

  • void consume(Object... row);: This method takes in the corresponding cell values for each column as Object. Each time the consume method is called, it processes one complete row from the table.

For the examples of built-in data loader scripts, open the Project tool window and navigate to Scratches and Consoles | Extensions | Database Tools and SQL | data | loaders.

Supported file formats

The supported file formats are as follows:

Script

File format

Excel

.xlsx, .xls

JSON

.json

Parquet

.parquet

Shapefile

.shp

Last modified: 16 May 2025