PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Heroku pg:il ripristino dei backup non riesce a causa apparentemente del timeout dell'applicazione Rails

OK, è difficile per me pubblicare perché mi sento così stupido, ma la soluzione diretta al mio problema è stata che non ho reso pubblico il mio collegamento su Amazon S3. Ecco perché stavo ricevendo un errore 403.

La potenziale confusione è che puoi usare il collegamento non pubblico, che è una lunga stringa di caratteri codificati. Ma utilizza un URL memorizzato nella cache. Poiché la cache è temporanea, la cache è stata eliminata prima che il processo di ripristino potesse terminare.

Quindi la risposta è rendere pubblico il collegamento Amazon S3 e quindi utilizzare il collegamento pubblico, ad esempio:https://s3-us-west-2.amazonaws.com/your_bucket_name/your_file_name.dump .

Quindi:heroku pg:backups restore 'https://s3-us-west-2.amazonaws.com/your_bucket_name/your_file_name.dump' HEROKU_DATABASE_URL .

Detto questo, in concomitanza con questo problema, credo che ci sia ancora un problema di "deadlock" relativo a AccessExclusiveLock che devo risolvere separatamente, ciò stava facendo sì che pg_restore impiegasse abbastanza tempo per il timeout della cache, ma questo è un problema separato.