Skip to main content

Working Locally

Getting started working with Tigris locally requires one easy step.

note

You need to have docker installed already.

Starting up Tigris on your local machine

Open your terminal, and:

tigris dev start

This will spin up Tigris locally via Docker. The Tigris server will then be available on port 8081.

Health Check

You can use the ping command to verify that the server is ready to accept requests.

tigris ping

Login to the local Tigris container

Run the following to point all subsequent commands to locally running Tigris container.

tigris login dev

Start building

That's it, you are ready to build with Tigris!

Create sample schema

For this quickstart we will model a simple ecommerce app. The data would be stored in three collections products, users and orders.

Let's use the CLI to generate the sample schema and create the three collections in the Tigris project named myproject.

tigris generate sample-schema --create

The schema of the collections created can be fetched as follows

tigris describe collection --project=myproject orders

Insert data

The following example will insert data into the users and products collections and then read it back.

One of the main features of Tigris is the ability to perform ACID transactions. We will perform a transaction that involves inserting and updating documents in the orders, users and products collections.

Now lets fire up the CLI and use the Tigris APIs to perform CRUD operations on the data.

Insert some data into the user and product collections

tigris insert --project=myproject users \
'[
{"id": 1, "name": "Jania McGrory", "balance": 6045.7},
{"id": 2, "name": "Bunny Instone", "balance": 2948.87}
]'
tigris insert --project=myproject products \
'[
{"id": 1, "name": "Vanilla Beans", "quantity": 6358, "price": 4.39},
{"id": 2, "name": "Cheese - Provolone", "quantity": 5726, "price": 16.74},
{"id": 3, "name": "Cake - Box Window 10x10x2.5", "quantity": 5514, "price": 36.4}
]'

Read the data that was inserted by the Primary key field

tigris read --project=myproject users '{"id": 1}'
tigris read --project=myproject products '{"id": 3}'

Read the data that was inserted by any field in the schema

tigris read --project=myproject users '{"name": "Jania McGrory"}'
tigris read --project=myproject products '{"name": "Vanilla Beans"}'

Perform a transaction that modifies all three collections

tigris transact --project=myproject \
'[
{
"insert": {
"collection": "orders",
"documents": [{
"id": 1, "user_id": 1, "order_total": 53.89, "products": [{"id": 1, "quantity": 1}]
}]
}
},
{
"update": {
"collection": "users", "fields": {"$set": {"balance": 5991.81}}, "filter": {"id": 1}
}
},
{
"update": {
"collection": "products", "fields": {"$set": {"quantity": 6357}}, "filter": {"id": 1}
}
}
]'

Search for a product

tigris search --project=myproject products -q "vanilla"

Shutting down the local Tigris

Shutting down the locally running Tigris is also as easy as requiring a single step. Open your terminal, and:

tigris dev stop

Customizing the Tigris server version and port

You can change the Tigris server port. For example, if you want the server to be available on port 9091:

tigris dev start 9091