docs/versioned_docs/version-2.33.0/tooljet_database.md
Use the ToolJet-hosted database to build apps faster, and manage your data with ease. ToolJet database require no setup and give you a powerful user interface for managing your data.
<div style={{textAlign: 'center'}}> </div> <div style={{paddingTop:'24px', paddingBottom:'24px'}}>Requires:
This feature is only enabled if ENABLE_TOOLJET_DB is set to true.
PostgREST is a standalone web server that turns your PostgreSQL database directly into queryable RESTful APIs which is utilized for Tooljet Database. This server only talks with ToolJet server and therefore does not have to be publicly exposed.
:::tip
If you have openssl installed, you can run the
command openssl rand -hex 32 to generate the value for PGRST_JWT_SECRET.
If this parameter is not specified, PostgREST will refuse authentication requests. :::
| variable | description |
|---|---|
| PGRST_JWT_SECRET | JWT token client provided for authentication |
| PGRST_DB_URI | database connection string for tooljet database |
| PGRST_LOG_LEVEL | info |
:::info
Please make sure that DB_URI is given in the format postgres://[USERNAME]:[PASSWORD]@[HOST]:[PORT]/[DATABASE]
:::
| variable | description |
|---|---|
| ENABLE_TOOLJET_DB | true or false |
| TOOLJET_DB | Default value is tooljet_db |
| TOOLJET_DB_HOST | database host |
| TOOLJET_DB_USER | database username |
| TOOLJET_DB_PASS | database password |
| TOOLJET_DB_PORT | database port |
| PGRST_JWT_SECRET | JWT token client provided for authentication |
| PGRST_HOST | postgrest database host |
If you intent to make changes in the above configuration. Please refer PostgREST configuration docs.
:::tip
When this feature is enabled, the database name provided for TOOLJET_DB will be utilized to create a new database during server boot process in all of our production deploy setups.
Incase you want to trigger it manually, use the command npm run db:create on ToolJet server.
:::
ToolJet database allows you to:
Once you log-in to your ToolJet account, from the left sidebar of the dashboard you can navigate to ToolJet Database.
The ToolJet Database is available on: ToolJet Cloud, Self-Host, and Enterprise Edition. You can view and manage your database and the data it contains using the Database editor UI.
<div style={{textAlign: 'center'}}> </div> </div>You can manage the ToolJet Database directly from the Database Editor. ToolJet Database organizes the data into tables that can have different structures. All the tables will be listed lexicographically on the left, click on any of the table to view the table data.
<div style={{textAlign: 'center'}}> </div>The sidebar on the left can also be collapsed to give more space to the database editor.
<div style={{textAlign: 'center'}}> </div>For creating a new table in ToolJet Database, click on the Create New Table button on the top left corner of the Database editor.
<div style={{textAlign: 'center'}}> </div>When the Create New Table button is clicked, a drawer opens up from the right from where you can enter the details of your new table.
<div style={{textAlign: 'center'}}> </div>id column with serial data type is automatically created as the primary key of the table)| Data type | Description | Example |
|---|---|---|
| serial | serial is used to generate a sequence of integers which are often used as the Primary key of a table. Whenever a new table is created in the ToolJet database, a column id with the serial data type is automatically created as the primary key of the table. | Numbers starting from 1, 2, 3, 4, 5, etc. |
| varchar | varchar data type is used to store characters of indefinite length | Any string value |
| int | int is a numeric data type used to store whole numbers, that is, numbers without fractional components. | Numbers ranging from -2147483648 to 2147483647 |
| bigint | bigint is a numeric data type that is used to store whole numbers, that is, numbers without fractional components. | Numbers ranging from -9223372036854775808 to 9223372036854775807 |
| float | float is also a numeric data type that is used to store inexact, variable-precision values. | Any floating-point number, ex: 3.14 |
| boolean | boolean data type can hold true, false, and null values. | true or false |
Open the Search bar by clicking on the Search button and search for a table in the ToolJet database by entering the table name.
<div style={{textAlign: 'center'}}> </div>To rename a table, click on the kebab menu icon on the right of the table name and then select the Rename table option. A drawer will open from the right from where you can edit the table name.
<div style={{textAlign: 'center'}}> </div>To add a new column on a table, either click on the kebab menu icon on the right of the table name and then select the Add new column option or click on the + button present at the end of the column header.
<div style={{textAlign: 'center'}}> </div>A drawer from the right will open up where you can enter the details for the new column:
The export schema option allows you to download the selected table schema in a JSON file. This does not export the table data.
While exporting the app, you can choose to export the app with or without table schema connected to the app.
To export the table schema, click on the three vertical dots icon on the right of the table name and then click on the Export option. A JSON file will be downloaded with the table schema.
<div style={{textAlign: 'center'}}> </div>To delete a table, click on the three vertical dots icon on the right of the table name and then click on the Delete option. A confirmation modal will appear, click on the Delete button to delete the table.
<div style={{textAlign: 'center'}}> </div>To edit a column, click on the kebab menu on the column name and select the option to Edit column. When you edit the column, the data type cannot be changed.
<div style={{textAlign: 'center'}}> </div>To delete a column, click on the kebab menu on the column name and select the option to Delete.
<div style={{textAlign: 'center'}}> </div>The Add new data button on the top of the table editor allows you to add data to the table. You can either Add new row or Bulk upload data to add the data to the table.
<div style={{textAlign: 'center'}}> </div>To add a new row on a table, either click on the Add new data button on top and then select the Add new row option or click on the + button present at the bottom left.
A drawer from the right will open up where the values for the new row can be provided.
<div style={{textAlign: 'center'}}> </div>To edit a row, hover on the row that you want to edit and the expand icon will appear next to the checkbox of that row. Click on the Expand icon to open the drawer and edit the row.
<div style={{textAlign: 'center'}}> </div>You can bulk upload data to the ToolJet database by clicking on the Bulk upload data button on the top of the database editor. On clicking the button, a drawer will open from the right from where you can upload a CSV file. This file is used to upsert records onto the table. If data for id column is missing it will insert new record with the row data else if id is present it will update the corresponding record with the corresponding row data.
From the drawer, users can download the template CSV file in which they can enter the data to be uploaded to the ToolJet database's table or format their CSV file in the same way as the template file.
Once the CSV file is ready, click on the file picker to select the file or drag and drop the file in the file picker. Now, click on the Upload data button to upload the data to the ToolJet database.
Requirements:
id column with a serial data type should not contain duplicate values.Limitations:
To delete one or many records/rows, select on the checkbox at the right of the record or records that you want to delete. As soon as you select a single record, the button to delete record will appear on the top, click on the Delete record button to delete the selected records.
<div style={{textAlign: 'center'}}> </div>You can add as many filter as you want into the table by clicking on the Filter button present on the top of the database editor.
ToolJet will not match tooljetToolJet will match tooljetToolJet will not match tooljet. This operation uses regular expressions. ex: ^ToolJet$ will match ToolJet but not ToolJet Inc.^ToolJet$ will match ToolJet but not ToolJet Inc.1,2,3ToolJet will not match tooljetToolJet will not match tooljetnot equals will return all the records where the value of the column is not equal to the value entered in the input field.To sort the table data, click on the Sort button on top, select a column from the dropdown, and then choose an order ascending or descending.
<div style={{textAlign: 'center'}}> </div>Querying ToolJet database is as easy as querying any other datasource on ToolJet.
Go to the query panel, and click on the +Add button to add a new query, and select ToolJet Database
<div style={{textAlign: 'center'}}> </div>Select the table that you want to query from the dropdown, choose an operation from the dropdown, and then enter the required parameters for the selected operation. Click on the Run button to execute the query.
<div style={{textAlign: 'center'}}> </div>:::info
tooljetdbN (where N is a number) - you can rename the query by click on the query name or from the left sidebar of query panel.
:::This operation returns all the records from the table
This operation creates a new record in the table. You can create a single record or multiple records at once.
This operation updates a record in the table. You can update a single record or multiple records at once.
This operation deletes a record in the table. You can delete a single record or multiple records at once.
You can join two or more tables in the ToolJet database by using the Join operation.
From: In the From section, there are the following parameters:
Inner Join, Left Join, Right Join, and Full Outer Join.= operation is supported for joining tables.AND or OR operation.Filter: Add a condition by choosing a column, an operation, and the value for filtering the records. The operations supported are same as the filter operations for the List rows operation.
Sort: Sort the query response by choosing a column and the order (ascending or descending).
Limit: Limit the number of records to be returned by entering a number.
Offset: Offset the number of records to be returned by entering a number. This parameter is used for pagination.
Select: Select the columns that you want to return in the query response. By default, all the columns are selected.
<div style={{textAlign: 'center'}}> </div>:::info If you have any other questions or feedback about ToolJet Database, please reach us out at [email protected] or join our Slack Community :::