Bill Moran wmoran at potentialtech.com
Tue Aug 4 05:27:40 PDT 2009
In response to Sweta Mulgavker <sweta.mulgavker at gmail.com>:

> Hello all,
> 
> I am using slony1 1.2.16-1 on CentOS 5 and my postgres version is 8.1.11 .
> 
> Few tables in my database do not have a PRIMARY KEY.
> 
>  PGRES_FATAL_ERROR select
> "_replcluster".determineIdxnameUnique('public.t_history', NULL);  - ERROR:
> Slony-I: table "public"."t_history" has no primary key

Slony can not replicate without a primary key.

> Also few tables in the db have FOREIGN KEY.
> 
> PGRES_FATAL_ERROR select
> "_replcluster".determineIdxnameUnique('public.t_r_off_hol_cash', NULL);  -
> ERROR:  Slony-I: table "public"."t_r_off_hol_cash" has no primary key

This error has nothing to do with foreign keys.  It's another example of
a lack of a primary key.  Foreign keys have never hampered Slony replication
in my experience.

> Another problem is that few tables have combination of keys as PRIMARY KEY.
> 
>  PGRES_FATAL_ERROR select "_replcluster".setAddTable(2, 2,
> 'public.t_emp_leave', 'emp_leave_pk', 'parent table');  - ERROR:  Slony-I:
> setAddTable(): set 2 not found

This has nothing to do with a combination of fields making up a primary
key.  Primary keys made up of multiple fields works fine.  The error
suggests that you're skipping steps in your configuration (specifically,
you skipped the step of defining a set).

> Is there any way in which slony can still replicate .. I mean without
> primary keys???

Not that I'm aware of.

> If not then is there any other way???   (I cannot change the db structure ).

You can look at alternatives, such as pgpool or PostgreSQL native wal log
shipping.  Neither of those function quite the same as Slony, so you may
have other problems.

-- 
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/


More information about the Slony1-general mailing list