In order to Spawn a database to work against, you'll need to create a Data Container. A Data Container is created from a Data Image.
$ spawnctl create data-container --image <ImageName[:Tag]_Or_ImageID>
In this tutorial we will create a Data Image and then use it to create a Data Container.
As a prerequisite you should've followed the instructions to install spawnctl
Create a file
development.yamlwith your Data Image specifications.
sourceType: empty name: dev engine: postgresql
In this case we want to create a PostgreSQL Data Image that is completely empty and is named
Run the following command to create a Data Image.
$ spawnctl create data-image -f ./development.yaml Data image 'dev' created!
You can verify your Data Image by running the following command.
$ spawnctl get data-images NAME IMAGE ID ENGINE STATUS MESSAGE CREATED dev 10001 PostgreSQL 2 Created 2 minutes ago
Create a Data Container from the newly created Data Image.
$ spawnctl create data-container --image dev Data container 'dev-rambbomj' created! -> Host=instances.spawn.cc;Port=53223;User ID=<some_user_id>;Password=<some_password>;
You can verify your Data Container was properly created by running the following command.
$ spawnctl get data-containers NAME CONTAINER ID REVISION STATUS MESSAGE ENGINE CREATED dev-rambbomj 10001 rev.0 2 Running PostgreSQL 1 minute ago
You should now be able to connect to your database and execute queries.
In this example we connect to the PostgreSQL Data Container (database) using psql.
$ psql -h instances.spawn.cc -p 53223 -U <some_user_id> Password for user <some_user_id>: psql (10.5, server 11.0 (Debian 11.0-1.pgdg90+2)) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. <some_user_id>=# CREATE TABLE customers(id INT); CREATE TABLE <some_user_id>=# \dt List of relations Schema | Name | Type | Owner --------+-----------+-------+------------------ public | customers | table | <some_user_id> (1 row)