MoveDatabase

MoveDatabase( from, to )
MoveDatabase( from, to )
MoveDatabase( from, to )
MoveDatabase( from, to )
move_database( from, to )
MoveDatabase( from, to )

Description

The MoveDatabase function moves the from database into the to database, making from a child database of to.

You must use an admin key that has access to the from database or MoveDatabase fails.

Parameters

Argument Type Definition and Requirements

from

A database ref for the database to be moved.

to

A database ref for the new parent database of from.

Returns

A database ref for the moved database.

Examples

The following example creates the stamps database and the hobbies database, and then moves the stamps database into the hobbies database:

Field<RefV> REF_FIELD = Field.At("ref").To<RefV>();

Value stamps = await client.Query(
  CreateDatabase(Obj("name", "stamps"))
);
Value hobbies = await client.Query(
  CreateDatabase(Obj("name", "hobbies"))
);
Value result = await client.Query(
  MoveDatabase(stamps.Get(REF_FIELD), hobbies.Get(REF_FIELD))
);
{
  "object": {
    "ref": {
      "@ref": {
        "id": "stamps",
        "collection": {
          "@ref": {
            "id": "databases"
          }
        },
        "database": {
          "@ref": {
            "id": "hobbies",
            "collection": {
              "@ref": {
                "id": "databases"
              }
            }
          }
        }
      }
    },
    "ts": 1574381591150000,
    "name": "stamps"
  }
}
var refField = f.ObjKey("ref")
var stampsRef, hobbiesRef f.RefV

stamps, err := client.Query(
  f.CreateDatabase(f.Obj{"name": "stamps"}))
if (err != nil) {
  fmt.Println(err)
}
stamps.At(refField).Get(&stampsRef)

hobbies, err := client.Query(
  f.CreateDatabase(f.Obj{"name": "hobbies"}))
if (err != nil) {
  fmt.Println(err)
}
hobbies.At(refField).Get(&hobbiesRef)

result, err := client.Query(
  f.MoveDatabase(stampsRef, hobbiesRef))
map[name:stamps ref:{stamps 0xc0000a0300 0xc0000a0300 0xc0000a0360} ts:1574379502810000]
Value stamps = client.query(
    CreateDatabase(Obj("name", Value("stamps")))
).get();
Value hobbies = client.query(
    CreateDatabase(Obj("name", Value("hobbies")))
).get();
System.out.println(
    client.query(
        MoveDatabase(
            stamps.get(Field.at("ref")),
            hobbies.get(Field.at("ref"))
        )
    ).get()
);
{ref: ref(id = "stamps", collection = ref(id = "databases"), database = ref(id = "hobbies", collection = ref(id = "databases"))), ts: 1570141207930000, name: "stamps"}
Promise.all([
  client.query(q.CreateDatabase({ name: 'stamps' })),
  client.query(q.CreateDatabase({ name: 'hobbies' })),
])
.then(([stamps, hobbies]) => client.query(
  q.MoveDatabase(stamps.ref, hobbies.ref)
))
.then((ret) => console.log(ret))
Moved: { ref: Database("stamps", Database("hobbies")),
  ts: 1570137825180000,
  name: 'stamps' }
stamps = client.query(
  q.create_database({"name": "stamps"})
)
hobbies = client.query(
  q.create_database({ "name": "hobbies"})
)
print(client.query(
  q.move_database(stamps["ref"], hobbies["ref"])
))
{
  'ref': Ref(
    id=stamps,
    collection=Ref(id=databases),
    database=Ref(id=hobbies, collection=Ref(id=databases))
  ),
  'ts': 1574370715820000,
  'name': 'stamps'
}
  val stamps = Await.result(client.query(
    CreateDatabase(Obj("name" -> "stamps"))
  ), 5.seconds)
  val hobbies = Await.result(client.query(
    CreateDatabase(Obj("name" -> "hobbies"))
  ), 5.seconds)
  println(Await.result(client.query(
      MoveDatabase(stamps("ref").get, hobbies("ref").get)
  ), 5.seconds))
{ref: ref(id = "stamps", collection = ref(id = "databases"), database = ref(id = "hobbies", collection = ref(id = "databases"))), ts: 1570139962250000, name: "stamps"}

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!