以编程方式创建 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
})
大家好,我是 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
})