Primeiro, eu não poderia concordar mais com Frank. Use 9.1 e um gatilho de tabela. No entanto, é possível que nem isso nem uma visualização resolvam seu problema.
Tente fazer um
UPDATE
manual na sua visão do psql. Se isso funcionar, e se você se conectar usando o mesmo ID de usuário com o opengeospatial, eu diria que o problema pode ser o opengeospatial ser muito inteligente para seu próprio bem e "saber" que as visualizações não podem ser atualizadas. Ou isso, ou está tentando um INSERT
e você não adicionou um INSERT
correspondente regra em sua visão. A mensagem "filedata_view is read-only" não é uma mensagem que o PostgreSQL possa produzir. Eu estou querendo saber se opengeospatial está usando metadados JDBC (supondo que seja Java) ou INFORMATION_SCHEMA ou similar para consultar o esquema, está determinando que
filedata_view
é uma visão e está concluindo que, portanto, não pode atualizá-la. Se fosse uma mensagem do PostgreSQL, diria:
# UPDATE customer_v SET customer_number = 1234;
ERROR: cannot update view "the_view"
HINT: You need an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger.
Pode ser informativo ativar
log_statement = 'all'
em postgresql.conf
e recarregue o postgresql. Teste novamente e, em seguida, olhe nos logs para ver o que exatamente o opengeospatial está fazendo. Se estiver detectando uma visualização, você poderá solucionar o problema com um
ON SELECT
regra adicionada a uma tabela vazia. A tabela funcionará exatamente como uma visualização, mas o GeoServer não poderá dizer que é uma visualização e pode concordar em gravar nela.