What are the trade-offs of different ways to connect directly to my database?

Hi. Would like to understand what others are doing with the various ways to set up database connections.

I gather so far… (please add to & correct my understanding)

1. Bubble Database Connector Plugin
Use case: Enables App builder (eg. me) to specify a sql query that can be parameterized by my end user in the UI. Is this intended to connect to an external database, or provide an easier way to retrieve data from my bubble database (eg. is an alternative to search fors)?

  • For example, my user could pull a list (read) of all their future appointment. The result displays as a table somehow?

  • The main benefit I anticipate is that the query can easily return values pulled from multiple tables into one flat table. Is this correct? If so, could this be a simple way to build a table that can be exported to .csv (saving the schedule workflow list slowness of the current hack)

Use case: Enable App builder to specify an insert statement which the end user can populate in the UI

  • For example, I have a form that my end user fills out. I can use an insert statement to populate the database. It’s unclear to me why I’d prefer this over a workflow that “creates a thing”

2.Connect to an external database
Use case: For those on a dedicated server, we’re able set up a port and connect directly to the bubble database.

  • For example, I’d be able to clone the tables in my Bubble database to another database and run sql queries on the clone.

  • Main benefit = ability to create an analytics database.

  • BIG QUESTION: through the port, could I run insert statements to write to my bubble database directly? Eg. This would be a faster way to upload data relative to a manual upload via the data tab feature. It might also provide a way to skirt the slow-ish return of multi-value API responses (the schedule a workflow on a list -> hit second endpoint that populates the DB one row at a time method). Would love the Bubble team to weigh in on this possibility.

3.Blockspring or Zapier
Use case: move limited – your key data, to a google sheet by pushing the data to blockspring or zapier as the intermediary that then moves the data to a google sheet.

Main benefit = straightforward path to export data & don’t need dedicated plan; Main limitation = more data; more calls


I’d like to understand how others are using these features. When do you opt for one of these features vs. using “Create thing”, “Modify thing” to do the lifting? Any comments you can add on performance would be much appreciated.

1 Like