【发布时间】:2021-07-09 17:08:34
【问题描述】:
如果数据库不存在,我希望 Marten 在配置我的事件存储时创建它。我在documentation 中发现我需要使用以下 sn-p 来实现这种行为:
services
.AddSingleton<IDocumentStore>(DocumentStore.For(options =>
{
options.Connection(connectionString);
options.DatabaseSchemaName = schemaName;
options.Serializer(GetCustomJsonSerializer());
options.CreateDatabasesForTenants(databaseConfig =>
{
databaseConfig
.MaintenanceDatabase(connectionString)
.ForTenant()
.CheckAgainstPgDatabase()
.WithOwner(eventStoreSettings.DatabaseOwner)
.WithEncoding(eventStoreSettings.Encoding)
.ConnectionLimit(eventStoreSettings.ConnectionLimit);
});
}));
文档显示“如果连接尝试导致无效目录错误 (3D000),则会触发数据库创建。”。附加的代码确实导致了上述错误(3D000),但我没有触发数据库创建,而是得到以下未处理的异常:“Npgsql.PostgresException(0x80004005):3D000:数据库“UserDatabase1”不存在 在Npgsql.NpgsqlConnector”。连接字符串中使用的用户的权限是正确的。如果它不存在如何使用Marten创建数据库?我做错了什么?
【问题讨论】:
标签: c# postgresql .net-core marten