This tutorial shows you how run a simple application built with TypeORM.
Step 1. Start CockroachDB
Create a free cluster
- If you haven't already, sign up for a CockroachDB Cloud account.
- Log in to your CockroachDB Cloud account.
- On the Clusters page, click Create Cluster.
- On the Create your cluster page, select Serverless.
- Click Create cluster. - Your cluster will be created in a few seconds and the Create SQL user dialog will display. 
Create a SQL user
The Create SQL user dialog allows you to create a new SQL user and password.
- Enter a username in the SQL user field or use the one provided by default.
- Click Generate & save password.
- Copy the generated password and save it in a secure location.
- Click Next. - Currently, all new users are created with full privileges. For more information and to change the default settings, see [Manage SQL users on a cluster. 
Get the connection information
The Connect to cluster dialog shows information about how to connect to your cluster.
- Select Parameters only from the Select option dropdown.
- Copy the connection information for each parameter displayed and save it in a secure location.
- If you haven't already, download the CockroachDB binary.
- Run the - cockroach start-single-nodecommand:- $ cockroach start-single-node --advertise-addr 'localhost' --insecure- This starts an insecure, single-node cluster. 
- Take note of the following connection information in the SQL shell welcome text: - CockroachDB node starting at 2021-08-30 17:25:30.06524 +0000 UTC (took 4.3s) build: CCL v21.1.6 @ 2021/07/20 15:33:43 (go1.15.11) webui: http://localhost:8080 sql: postgresql://root@localhost:26257?sslmode=disable- You'll use the - sqlconnection string to connect to the cluster later in this tutorial.
The --insecure flag used in this tutorial is intended for non-production testing only. To run CockroachDB in production, use a secure cluster instead.
Step 2. Get the code
- Clone the code's GitHub repository: - $ git clone git@github.com:cockroachlabs/example-app-typescript-typeorm.git
- Navigate to the repo directory and install the application dependencies: - $ cd example-app-typescript-typeorm- $ npm install
Step 3. Configure your CockroachDB connection
- Open the - datasource.tsfile, and comment out the- ssl: true,- extraand- optionsconfiguration properties.
- In the - datasource.tsfile, uncomment- ssl: { rejectUnauthorized: false }.Warning:- Only use - ssl: { rejectUnauthorized: false }in development, for insecure connections.- The - DataSourceconfiguration should look similar to the following:- export const AppDataSource = new DataSource({ type: "cockroachdb", url: process.env.DATABASE_URL, ssl: { rejectUnauthorized: false }, // For insecure connections only /* ssl: true, extra: { options: "--cluster=<routing-id>" }, */ synchronize: true, logging: false, entities: ["src/entity/**/*.ts"], migrations: ["src/migration/**/*.ts"], subscribers: ["src/subscriber/**/*.ts"], })
- Set the - DATABASE_URLenvironment variable to the connection string provided in the- cockroachwelcome text:- export DATABASE_URL="postgresql://root@localhost:26257?sslmode=disable"
- Open the - datasource.tsfile, and edit the- options: "--cluster=<routing-id>"configuration property to specify the routing ID to your serverless cluster.
- Set the - DATABASE_URLenvironment variable to a CockroachDB connection string compatible with TypeORM.- export DATABASE_URL="<connection-string>"- TypeORM accepts the following format for CockroachDB Serverless connection strings: - postgresql://<username>:<password>@<host>:<port>/<database>
Step 4. Run the code
Start the application:
$ npm start
You should see the following output in your terminal:
Inserting a new account into the database...
Saved a new account.
Printing balances from account 1db0f34a-55e8-42e7-adf1-49e76010b763.
[
  Account { id: '1db0f34a-55e8-42e7-adf1-49e76010b763', balance: 1000 }
]
Inserting a new account into the database...
Saved a new account.
Printing balances from account 4e26653a-3821-48c8-a481-47eb73b3e4cc.
[
  Account { id: '4e26653a-3821-48c8-a481-47eb73b3e4cc', balance: 250 }
]
Transferring 500 from account 1db0f34a-55e8-42e7-adf1-49e76010b763 to account 4e26653a-3821-48c8-a481-47eb73b3e4cc.
Transfer complete.
Printing balances from account 1db0f34a-55e8-42e7-adf1-49e76010b763.
[
  Account { id: '1db0f34a-55e8-42e7-adf1-49e76010b763', balance: 1000 }
]
Printing balances from account 4e26653a-3821-48c8-a481-47eb73b3e4cc.
[
  Account { id: '4e26653a-3821-48c8-a481-47eb73b3e4cc', balance: 250 }
]
What's next?
Read more about using the TypeORM.
You might also be interested in the following pages: