Budibase DB

This datasource is the one that is native to Budibase. Any data you add here is stored directly on your Budibase instance.

Creating a table

You can create a table when you're in the data section in your application.

The recommended flow is to go to your Budibase DB instance from the sidebar, and then click the Create new table button.


Create a new table using this button

When creating a new Budibase DB table you can choose which built-in (auto types) columns you want to have. Each of these will be automatically maintained, created and updated based on the properties. You can choose to omit as you see fit. These can be added post-creation too through the Create column button, by selecting the Auto Column type.

Auto IDAn automatically generated ID
Created byThe user who created the row
Created atWhen this row was created
Updated byThe user who updated the row last
Updated atThe time when the row was updated last
All auto columns selected by default

All auto columns selected by default

Adding an auto column at a later point

Adding an auto column at a later point

CSV upload

When you already have existing data, you can import this using a CSV file when creating a table. This will automatically identify columns and create them for you, after which you can specify data types per column.

In the example below I imported a CSV with 4 columns representing a table of countries. After the file uploaded the screen below was shown.

As you can see, it automatically identified the 4 columns and allowed me to pick the data types for each column.

Adding columns

To add new columns to an existing Budibase DB table, navigate to the table you want to edit, then click the Create Column button on top of the table. This will display a dialog where you can configure the column you want to add.

Editing columns

  1. Step into the table through the sidebar
  2. Hover over the column name you want to edit
  3. Click the pencil icon

Selecting the display column

The display column is an important aspect when you're setting up relationships in tables. The column you select as a display column will be the one visually displayed inside a relationship column in another table.

Selecting a column during the table creation is only possible if you import data using a CSV file. To select a display column in any other situation, edit the column you want to make the display. This will give you the Use as table display column option as shown below.

Data types

Within Budibase DB there are several data types to choose.

TextStorage of (relatively) short text
Long Form TextAllows you to store large amounts of texts, also supports markdown
OptionsPredefined list of options of which one can be selected
Multi-selectPredefined list of options of which multiple can be selected
NumberStorage of number
Boolean (True/False)Storage of true/false
Date/timeStorage of a date with a time
AttachmentsStorage of a file. Limited to 20MB per file
RelationshipsCreates a link between this table and another table
FormulaAllows you to set a formulated column, which will be calculated based on what you define. You can use handlebars or JavaScript
JSONAllows you to store JSON within a row, with the option to define a schema
Auto ColumnAuto columns can be added post-creation of the database by selecting data type.

If using an external SQL Datasource, the native SQL data types will be mapped to one of these Budibase types for use in your apps. For more detail, look here for how the mappings are handled.

Column definitions

Common column options:

Property NameDescription
NameThe name of the column, used for querying and displaying
TypeThe type of data you want to store.
Use as table display columnEnabling this will make the newly created column the display column. This will also automatically make the field required
Primary indexEnabling this allows you to search in this field
Secondary indexWhen primary index is in use, you can enable a second index for searching

Data type specific column options:
Property NameDescriptionData Types
Enable Rich Text Format SupportEnabling this will allow you to store markdownLong Form Text
OptionsThe select-able options available for this column, one per line.Options, Multi-select
TableAllow a relationship to the specified tableRelationship
Column name in other tableThe relationship created will also be visible in the related table, this will set the new column name on the related tableRelationship
FormulaAllows you to set a formulated column, which will be calculated based on what you define. Allows you to define handlebars and JavaScriptFormula


The following column constraints are available:

Contraint NameDescriptionData Types
RequiredWhen enabled, a value must be set for this fieldAll
Maximum LengthThe maximum length that can be stored in this columnText
Min ValueWhen set, any value entered in the database lower than this number will be rejectedNumber
Max ValueWhen set, any value entered in the database higher than this number will be rejectedNumber
EarliestWhen set, any date before the specified date is rejected for new rowsDate/Time
LatestWhen set, any date after the specified date is rejected for new rowsDate/Time


External datasource constraints

You can add Budibase constraints to external table columns, however this is entirely for form validation and will not restrict the data that is saved.
Instead, you must add data constraints yourself to any external table schemas.