id
. We don’t sync any of your Airtable views.
You’ll see that we convert your table names to snake_case
(i.e lowercase words delineated by an underscore).
So what was Product Inventory
in Airtable is now product_inventory
in your Sequin database.
If you used emojis 🙈 or punctuation in your table names, we’ll remove them from the table names in your Sequin database so your queries are easy to write.
For more information about our sync process, scroll down to “The syncing process”.
Airtable Field Type | Sequin Database Type |
---|---|
Attachment | text[] |
Autonumber | numeric |
Barcode | numeric |
Button | text |
Checkbox | bool |
Collaborator | text[] |
Count | numeric |
Created time | timestamp |
Currency | numeric |
Date | date or timestamp |
Duration | text |
text | |
Formula | text |
Last modified by | text |
Link to another record | text |
Long text | text |
Lookup^ | text[] or text |
Multiple select | text[] |
Number | numeric |
Percent | numeric |
Phone number | text |
Rating | numeric |
Rollup | text[] |
Single line text | text |
Single select | text |
URL | text |
Note: You can toggle whether a Lookup will be stored as atext[]
ortext
in your Postgres database using the Advanced settings for your resource. See the linked records and lookups section to learn how.
id
and created_time
id
and created_time
column:
id
- this is the Airtable record_id
for the that row.created_time
- this is the timestamp for when the record was created.id
or created_time
then we will append an underscore (_
) to the end of the columns name like so:
id
→ id_
created_time
→ created_time_
text
(single records) or text[]
(multiple records). text
columns are easier to work with in Postgres than text[]
columns and allow us to setup foreign key constraints between the linked fields.
When this setting is disabled, all Linked Record fields will be cast to text[]
, no matter the quantity of records linked.
A common query with linked records and lookups is to JOIN
the two corresponding tables by matching a record’s id
with the id
from the origination table (the table being looked up). Check out our cheat sheet for a complete example.
text
values.
Here are some great resources for using PostgreSQL arrays:
[1]
.unnest()
function will expand any array into a set of rowsANY
operator makes JOINS
easy:Size | Est sync time |
---|---|
1,000 | 3.33s |
5,000 | 16.66s |
10,000 | 33.33s |
20,000 | 1min 6s |
50,000 | 2min 46s |
100,000 | 5min 33s |
insert
, update
, or delete
rows in your Postgres database.
When you’re connected to your database through the Sequin Proxy, the Proxy listens for changes. When you make a mutation, the Proxy applies the mutation to Airtable’s API first. If the mutation succeeds, your database is updated as well. If it fails, your database mutation will be rolled back, and you’ll receive a Postgres error.
Data flows from Airtable to your Postgres database. Your code or SQL client then reads from the database. To mutate your data, you update records in your database. Those mutations are applied to Airtable then to your database.
With this architecture, Airtable remains the source of truth and your database never gets out-of-sync.
insert
to create a new entry in the “Orders” table on Airtable.200
. The body contains the new order.orders
table in your Sequin database.