Create a child database

Reading or writing database documents requires an admin key.

Problem

You need to create a child database.

Solution

Use the CreateDatabase function:

adminClient.query(
  q.CreateDatabase({ name: 'annuvin' })
)
.then((ret) => console.log(ret))
.catch((err) => console.error(
  'Error: [%s] %s: %s',
  err.name,
  err.message,
  err.errors()[0].description,
))
{
  ref: Database("annuvin"),
  ts: 1622573508720000,
  name: 'annuvin',
  global_id: 'yoiji573cydyy'
}
result = adminClient.query(
  q.create_database({"name": "annuvin"})
)
print(result)
{'ref': Ref(id=annuvin, collection=Ref(id=databases)), 'ts': 1622573511610000, 'name': 'annuvin', 'global_id': 'yoijihdqgydyy'}
result, err := adminClient.Query(
	f.CreateDatabase(f.Obj{"name": "annuvin"}))

if err != nil {
	fmt.Fprintln(os.Stderr, err)
} else {
	fmt.Println(result)
}
map[global_id:yoiji3uwcybyy name:annuvin ref:{annuvin 0xc0001804b0 0xc0001804b0 <nil>} ts:1622573470750000]
try
{
    Value result = await client.Query(
        CreateDatabase(Obj("name", "annuvin"))
    );
    Console.WriteLine(result);
}
catch (Exception e)
{
    Console.WriteLine($"ERROR: {e.Message}");
}
ObjectV(ref: RefV(id = "annuvin", collection = RefV(id = "databases")),ts: LongV(1622573448030000),name: StringV(annuvin),global_id: StringV(yoijia8e1ybyy))
CreateDatabase({ name: 'annuvin' })
{
  ref: Database("annuvin"),
  ts: 1624310575420000,
  name: 'annuvin',
  global_id: 'yoat8nnggybyy'
}
Query metrics:
  •    bytesIn:   49

  •   bytesOut:  154

  • computeOps:    1

  •    readOps:    0

  •   writeOps:    1

  •  readBytes:   20

  • writeBytes:  473

  •  queryTime: 40ms

  •    retries:    0

Discussion

It is not possible to create parent or peer databases with the CreateDatabase function; you can only create a child database in the current database.

Is this article helpful? 

Tell Fauna how the article can be improved:
Visit Fauna's forums or email docs@fauna.com

Thank you for your feedback!