marten: Migration to v4 issue, Primary Key is not updated in document table
Hi, recently i tried an upgrade to version: Alpha 11 (also r1 and r2). I have following issue in upsert: Basically it tells: There isnt contraint: pk_mt_doc_transit for table: mt_doc_transit
But its not really true, constraint exists but its named in following syntax: mt_doc_transit_pkey
2021-07-06 16:41:49.6762|ERROR|LibRtDb.Services.TransitsService|Marten.Exceptions.MartenCommandException: Marten Command Failure:$ select parko_rts.mt_upsert_transit(:p0, :p1, :p2, :p3);$ $ 42704: il vincolo "pk_mt_doc_transit" per la tabella "mt_doc_transit" non esiste ---> Npgsql.PostgresException (0x80004005): 42704: il vincolo "pk_mt_doc_transit" per la tabella "mt_doc_transit" non esiste at Npgsql.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|194_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.NpgsqlCommand.ExecuteReader(CommandBehavior behavior) at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader() at Marten.NulloRetryPolicy.Execute[TResult](Func1 operation)
at Marten.Services.ManagedConnection.ExecuteReader(NpgsqlCommand command)
Exception data:
Severity: ERRORE
SqlState: 42704
MessageText: il vincolo “pk_mt_doc_transit” per la tabella “mt_doc_transit” non esiste
Where: istruzione SQL “INSERT INTO parko_rts.mt_doc_transit (“data”, “mt_dotnet_type”, “id”, “mt_version”, mt_last_modified) VALUES (doc, docDotNetType, docId, docVersion, transaction_timestamp())
ON CONFLICT ON CONSTRAINT pk_mt_doc_transit
DO UPDATE SET “data” = doc, “mt_dotnet_type” = docDotNetType, “mt_version” = docVersion, mt_last_modified = transaction_timestamp()”
funzione PL/pgSQL parko_rts.mt_upsert_transit(jsonb,character varying,bigint,uuid) riga 5 a istruzione SQL
File: d:\pginstaller_13.auto\postgres.windows-x64\src\backend\catalog\pg_constraint.c
Line: 968
Routine: get_relation_constraint_attnos
— End of inner exception stack trace —
at Baseline.Exceptions.ExceptionTransformExtensions.TransformAndThrow(IEnumerable1 transforms, Exception ex) at Baseline.Exceptions.ExceptionTransforms.TransformAndThrow(Exception ex) at Marten.Exceptions.MartenExceptionTransformer.WrapAndThrow(NpgsqlCommand command, Exception exception) at Marten.Services.ManagedConnection.handleCommandException(NpgsqlCommand cmd, Exception e) at Marten.Services.ManagedConnection.ExecuteReader(NpgsqlCommand command) at Marten.Internal.UpdateBatch.ApplyChanges(IMartenSession session) --- End of stack trace from previous location --- at Baseline.Exceptions.ExceptionTransformExtensions.TransformAndThrow(IEnumerable1 transforms, Exception ex)
at Marten.Internal.UpdateBatch.ApplyChanges(IMartenSession session)
at Marten.Internal.Sessions.DocumentSessionBase.ExecuteBatch(IUpdateBatch batch)
at Marten.Internal.Sessions.DocumentSessionBase.SaveChanges()
at LibRtDb.Services.TransitsService.UpdateTransit(Transit NewTransit) in C:\Users\maxym.oboyshev\source\repos\ParkO_V3\ADVANCED_RTS\RT_DB\LibRtDb\Services\TransitsService.cs:line 392
Marten Command Failure:$
select parko_rts.mt_upsert_transit(:p0, :p1, :p2, :p3);$
$
42704: il vincolo “pk_mt_doc_transit” per la tabella “mt_doc_transit” non esiste
`
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 1
- Comments: 16 (6 by maintainers)
@amferguson @tonykaralis, thank you for the help. Fixed by https://github.com/JasperFx/marten/pull/1938 👍
@oskardudycz yep, that looks great! The migrations it creates this time has a couple of new lines
which is exactly what we want, so that looks perfect. Thank you all so much for getting this fixed so quickly!
@oskardudycz Will give it a run in a couple of hours, have some meetings to get through!!
@tonykaralis @amferguson, would you be so kind as to provide:
That’d help us to tackle that case. Thank you in advance!