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
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: emptyname: devengine: postgresqlversion: 11.0
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.yamlData image 'dev' (10001) created!
You can verify your data image by running the following command.$ spawnctl get data-imagesNAME IMAGE ID ENGINE STATUS MESSAGE CREATEDdev 10001 PostgreSQL 2 Created 2 minutes ago
Create a data container from the newly created data image.$ spawnctl create data-container --image devData container 'dev-rambbomj' (10001) 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
rev.0.$ spawnctl get data-containersNAME CONTAINER ID REVISION STATUS MESSAGE ENGINE CREATEDdev-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>=# \dtList of relationsSchema | 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-rambbomjSaving 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-containersNAME CONTAINER ID REVISION STATUS MESSAGE ENGINE CREATEDdev-rambbomj 10001 rev.1 2 Running PostgreSQL 1 minute ago
In this case the revision changed from