A repository to hold code for my Airtable, expenses Base.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd/migrate
pkg
.env.sample
.gitignore
LICENSE
Makefile
README.md

README.md

airtable-expenses


This is a project that I created to test out Airtable, a spreadsheet-like UI, with database properties such as relationships between sheets. This specific project is the code that I used to migrate from a Google Sheet with a single sheet to Airtable with multiple tables.

Important Notes

Here is a link to the Airtable Base that I created and can be copied.

Airtable generates an API specific to your table, see the documentation here.

After you’ve created and configured the schema of an Airtable base from the graphical interface, your Airtable base will provide its own API to create, read, update, and destroy records.

With that said, use this as an example as it is not a generalized tool.

Dependencies

  • Go
  • Obtain the Google libraries used
    go get -u google.golang.org/api/sheets/v4
    go get -u golang.org/x/oauth2/...

References

Getting Started

  1. Click the "ENABLE THE SHEETS API" button in the Google Quickstart Guide
  2. "Clone" the project
go get -u github.com/mccurdyc/cmd/migrate
  1. Setup the environment
    1. Fill in the values in .env.sample
    2. $ source .env.sample
  2. Run the project
make run

Comments on Airtable After Usage

What I like

What I dislike

  • can only GET by Airtable ID, which means that I have to GET ALL and store ID in memory
  • no UNIQUE fields like in a relational database
  • some JSON fields are camelCase, others PascalCase in the API
  • in my experience, in the iOS mobile application, you can only search records by the primary key, which I have set as an auto-incremented integer instead of a string.
    • for this, I have considered setting the primary keys as the names of merchants, tags, etc., but I am used to IDs as the primary key.

License