sql >> Databasteknik >  >> RDS >> PostgreSQL

ActiveRecord::StatementInvalid:PG::Error:ERROR:kan inte köra UPDATE i ett skrivskyddat transaktionsfel i Heroku

Repliken blev faktiskt aldrig befordrad. Se kommentarer.

Du kan se när en replik följer en huvudserver eftersom:

SELECT pg_is_in_recovery();

kommer att återkomma sant. Detta kan inte returnera sant i en masterserver eftersom den enda gången en masterserver kan vara i återställning är när den fortfarande startar - och då kan du inte ansluta till den, så du kan inte köra det kommandot. Det är sant från och med 9.2 och 9.3beta; detta kan ändras i framtida versioner, så om du läser detta och på en nyare version, leta efter en dedikerad funktion för att kontrollera om servern är en replik.



  1. Varför misslyckas den här kontrollen för noll-associativ array i PL/SQL?

  2. Kör en PostgreSQL .sql-fil med kommandoradsargument

  3. Hur infogar man data i en Hive(0.13.1)-tabell?

  4. Effektivare hierarkisystem