【问题标题】:Why use CreateDatabaseIfNotExistsAsync and other similar ones in production?为什么在生产中使用 CreateDatabaseIfNotExistsAsync 和其他类似的?
【发布时间】:2020-12-22 01:14:59
【问题描述】:

我说的是教程中的代码,看起来像这样:

DatabaseResponse database = await client.CreateDatabaseIfNotExistsAsync(databaseName);

await database.Database.CreateContainerIfNotExistsAsync(containerName, "/id");

在我看来,如果您的应用启动并且找不到数据库(该数据库应该在应用重新启动/推出之间保持不变),则需要担心更大的问题,并且 CreateIfNotExists 有点毫无意义。

这还是推荐的生产模式吗?

【问题讨论】:

  • 这个问题真的没有正确答案。一些应用程序的所有数据库都是通过 DevOps 管道创建的(也可能是基线集合)。其他人在代码中创建它们。也可能有动态创建的数据库和集合(例如,新客户的新集合;不可能提前创建)。真的,这取决于你。大多数演示代码包括创建 db/collection 以确保演示正常工作(并保持简单且不必构建构建环境)。
  • 您好,我的回答可以回答您的问题吗?:)
  • 是的。在选择答案之前,我正在等待查看是否会出现其他答案:)

标签: azure azure-cosmosdb azure-cosmosdb-sqlapi


【解决方案1】:

在我看来,如果您的应用启动并且找不到数据库 (这应该在应用程序重新启动/推出之间保持不变),有 需要担心的更大的问题和 CreateIfNotExists 有点像 毫无意义。

这还是推荐的生产模式吗?

我认为这取决于您的需求。一般来说,使用CosmosClient.CreateDatabaseIfNotExistsAsync可以避免麻烦。但如果需要检查,可以使用另一种方法,如CosmosClient.CreateDatabaseAsyncCosmosClient.GetDatabase(String)CosmosClient.CreateDatabaseIfNotExistsAsync x 基本上是两者的结合。设计一些逻辑,如果不存在可以得到一些提示。

【讨论】:

    猜你喜欢
    • 2011-12-01
    • 1970-01-01
    • 2020-07-11
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多