簡體   English   中英

如何對 Postgres 9.0 數據庫進行逆向工程

[英]How to reverse engineer Postgres 9.0 database

ASP.NET Core 6 MVC 應用程序使用 EF Core 和 Npgsql。

使用逆向工程 Postgres 9.0 數據庫

scaffolder.ScaffoldModel(connectionString.ToString(), dbOpts, modelOpts, codeGenOpts);

拋出異常

Npgsql.PostgresException (0x80004005): 42703: 列“enumsortorder”不存在

在 sql

SELECT
  nspname,
  typname,
  array_agg(enumlabel ORDER BY enumsortorder) AS labels
FROM pg_enum
JOIN pg_type ON pg_type.oid = enumtypid
JOIN pg_namespace ON pg_namespace.oid = pg_type.typnamespace
GROUP BY nspname, typname

帶有堆棧跟蹤

at Npgsql.Internal.NpgsqlConnector.g__ReadMessageLong|213_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlDataReader.NextResult() at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Scaffolding.Internal.NpgsqlDatabaseModelFactory.GetEnums(NpgsqlConnection connection, DatabaseModel databaseModel) 在 Npgsql.EntityFrameworkCore.PostgreSQL.Scaf fold.Internal.NpgsqlDatabaseModelFactory.Create(DbConnection dbConnection, DatabaseModelFactoryOptions 選項) 在 Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineerString connectionString.ScaffoldModel( , DatabaseModelFactoryOptions databaseOptions, ModelReverseEngineerOptions modelOptions, ModelCodeGenerationOptions codeOptions)

如何在 .NET6 中對 Postgres 9.0 數據庫進行逆向工程? 幾乎不使用枚舉數據類型。

我已經為 6.0.2 修復了這個問題,請參閱https://github.com/npgsql/efcore.pg/issues/2160

如果您不在 github 和 stackoverflow 上交叉發布相同的問題會更好 - 它主要在兩個地方創建更多的工作回答。 如果某些東西看起來像 Npgsql 錯誤,並且 issue 應該足夠了,否則 stackoverflow 對使用問題等有好處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM