PG cannot execute UPDATE in a read-only transaction出现这种情况时,说明SQL语句可能是运行在一个PG集群中的非master节点上。查看data/pg_hba.conf。
SELECT pg_is_in_recovery();
This cannot return true in a master server because the only time a master server can be in recovery。
还有如下可能Normally the most plausible reasons for this kind of error are :
trying create statements on a read-only replica (the entire instance is read-only).
<username>
hasdefault_transaction_read_only
set to ONthe database has
default_transaction_read_only
set to ONalter database exercises set default_transaction_read_only = off;
How to add column if not exists on PostgreSQL
With Postgres 9.6 this can be done using the option if not exists
ALTER TABLE table_name ADD COLUMN IF NOT EXISTS column_name INTEGER;
https://stackoverflow.com/questions/12597465/how-to-add-column-if-not-exists-on-postgresql