Saving a Data Container creates a new revision for that Data Container. To save a Data Container use the
save command. Revisions are necessary for operations like
$ spawnctl save data-container <ContainerName_Or_ContainerID>
In this tutorial we will create a Data Image, then create a Data Container from that image. We will then make some changes to the data-container and finally save those changes.
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.
Notice the created Data Container has revision
$ 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)
We can now perform a save operation on this Data Container.
$ spawnctl save data-container dev-rambbomj Saving container.... Data container 'dev-rambbomj' saved! New revision is 'rev.1'
You can also verify that a new revision was created by running the following command.
$ spawnctl get data-containers NAME CONTAINER ID REVISION STATUS MESSAGE ENGINE CREATED dev-rambbomj 10001 rev.1 2 Running PostgreSQL 1 minute ago
In this case the revision changed from