Storage

An app's storage defines what are the different ways in which data is stored in the app, including databases, tape storage, local file system, in-memory caches, cloud storages like AWS S3 etc.

Syntax overview

Imagine's storage domain currently supports a single database storage using sqlite3, mysql or postgresql, and this is governed by a simple setting.

database 'database-name' <database-choice>

Currently we don't have any domain specific syntax for representing the storage of an app.

Example

Let's take an example where you want to set up a sqlite3 database with the name mydb.

Representation in Imagine syntax

This would be represented in Imagine's syntax as follows:

database mydb sqlite3

Settings

Currently we don't have any settings for representing the storage of an app.


Domain-specific syntax

Imagine's storage syntax allow you select a single database type and name.

database 'database-name' <database-choice>

Database-name, Database-choice

For database-name, you can select a name for your database.

In the example below, dbmysql is the name of the mysql database:

database dbmysql mysql

To use a postgresql database with the database name musica-db, you can represent this ass:

database musica-db postgresql

For <database-choice> we currently support storage on a single database with one the following types of databases:

  • sqlite3
  • mysql
  • postgresql

In upcoming versions, we will allow developers to represent more aspects of storage such as multilple databases for storage, and different types of storage like tape storage, local file system, in-memory caches and cloud storages like AWS S3 etc.