@@ -249,16 +249,17 @@ func upsertBulkPackage(ctx context.Context, tx *ent.Tx, pkgInputs []*model.IDorP
249249 return nil , errors .Wrap (err , "bulk upsert pkgName node" )
250250 }
251251
252- if err := tx .PackageVersion .CreateBulk (pkgVersionCreates ... ).
253- OnConflict (
254- sql .ConflictColumns (
255- packageversion .FieldHash ,
256- packageversion .FieldNameID ,
257- ),
258- ).
259- DoNothing ().
260- Exec (ctx ); err != nil && err != stdsql .ErrNoRows {
261-
252+ if err := retryOnFKViolation (ctx , func () error {
253+ return tx .PackageVersion .CreateBulk (pkgVersionCreates ... ).
254+ OnConflict (
255+ sql .ConflictColumns (
256+ packageversion .FieldHash ,
257+ packageversion .FieldNameID ,
258+ ),
259+ ).
260+ DoNothing ().
261+ Exec (ctx )
262+ }); err != nil && err != stdsql .ErrNoRows {
262263 return nil , errors .Wrap (err , "bulk upsert pkgVersion node" )
263264 }
264265 }
@@ -293,18 +294,18 @@ func upsertPackage(ctx context.Context, tx *ent.Tx, pkg model.IDorPkgInput) (*mo
293294
294295 pkgVersionCreate := generatePackageVersionCreate (tx , & pkgVersionID , & pkgNameID , & pkg )
295296
296- if err := pkgVersionCreate .
297- OnConflict (
298- sql . ConflictColumns (
299- packageversion . FieldHash ,
300- packageversion .FieldNameID ,
301- ) ,
302- ).
303- DoNothing ( ).
304- Exec ( ctx ); err != nil {
305- if err != stdsql . ErrNoRows {
306- return nil , errors . Wrap ( err , "upsert package version" )
307- }
297+ if err := retryOnFKViolation ( ctx , func () error {
298+ return pkgVersionCreate .
299+ OnConflict (
300+ sql . ConflictColumns (
301+ packageversion .FieldHash ,
302+ packageversion . FieldNameID ,
303+ ),
304+ ).
305+ DoNothing ().
306+ Exec ( ctx )
307+ }); err != nil && err != stdsql . ErrNoRows {
308+ return nil , errors . Wrap ( err , "upsert package version" )
308309 }
309310
310311 return & model.PackageIDs {
0 commit comments