Postgresql – replicate views with Slony

postgresqlreplicationslony

Can I feed some SQL that creates a view to Slony?

I have some SQL that does CREATE OR REPLACE VIEW name_of_view and so on, passes it to slonik_execute_script, and then tries to run slonik_create_set for a temporary Slony set containing only that view.

I get rejected with ERROR: Slony-I: table "public"."name_of_view" has no primary key error. To my knowledge, views don't support primary keys.

Does this mean there is no way, using the Slony admin scripts, to add a view to replication, and that I should just install it manually on all members of my replication cluster?

Best Answer

Slony is trigger based. Since you cannot have triggers on views you can not use Slony to replicate views.

However, you can achieve the desired effect by using Slony to replicate the tables used by your views and duplicate the view definitions on your slave servers.