以编程方式创建 Faunadb 子数据库

Programmatically creating Faunadb child database

大家好,我是 Faunadb 的新手,正在尝试多租户应用程序。可以选择从动物 shell 创建子数据库。但我的想法是当用户注册时,将自动创建一个具有该用户名的子数据库。

我在那里搜索了文档,但一无所知。是否可以从 React、Vue 等前端 JS 库或从 Nodejs 中的 API 获取?

提前致谢

您可以使用 JS driver (it's not framework-specific) to create the child DB and set up its schema using fauna's Create* functions.

是的,您可以使用 CreateDatabase 以编程方式创建子数据库。这里有两点需要注意:

  • 您用于创建子数据库的密钥必须具有 admin role,因此您希望从安全的后端节点服务器执行此操作。
  • 你在 fauna 中连接到哪个数据库是由你用来连接的密钥定义的,因此你必须为新的子数据库生成并使用另一个密钥。

代码可能是这样的:

// Connect to the parent database
const parentFauna = new faunadb.Client({
  secret: FAUNA_ADMIN_KEY
})

// Create child database and retrieve a new key for it
const { secret } = await parentFauna.query(
  Do(
    CreateDatabase({
      name: "example"
    }),
    CreateKey({
      database: Database("example"),
      role: "server"
    })
  )
)

// You can now connect to the child database
const childFauna = new faunadb.Client({
  secret: secret
})