[Serusers] PostgreSQL

Takefumi Naito natake at nifty.com
Sat Jul 26 09:41:55 CEST 2003


Thank you for your reply.

I tried, but location database hasn't run yet.

The machine I use are installed SER and PostgreSQL.

First, what I did is created a database "ser" 
and created table "location", "subscriber" and "grp"
according to the way you teached me.

Then I did following procedure.

 $psql ser
 
 postgres=# create user seruser with password 'seruserpass';
 postgres=# Grant all on table location to seruser;
 postgres=# Grant all on table subscriber to seruser;
 postgres=# Grant all on table grp to seruser;

In the ser.cfg file, I set db_url "sql://seruser:seruserpass@localhost:5432/ser" 
 for three modules: userloc, group and auth_db.

Is that right?
Could you point my mistake out?

Best regards.
Takefumi


> Hi,
> 
> Wow, I didn't think anybody was going to ever use it!
> 
> I've been running, in production, for several months.
> The driver seems to work.
> 
> First, it goes without saying, but you have to get Postgres
> installed on your machine, and perhaps two machines.
> If you are running postgres on the same machine that is doing
> the SER process, then one machine will do, otherwise, install
> Postgres on the machine that runs the database, and on the machine
> that compiles (and runs) SER.
> 
> Second, start the database and create a couple of tables:
> 
> CREATE TABLE subscriber (
>     phplib_id character varying(32) DEFAULT '' NOT NULL,
>     user_id character varying(100) DEFAULT '' NOT NULL,
>     "password" character varying(25) DEFAULT '' NOT NULL,
>     first_name character varying(25) DEFAULT '' NOT NULL,
>     last_name character varying(45) DEFAULT '' NOT NULL,
>     phone character varying(15) DEFAULT '' NOT NULL,
>     email_address character varying(50) DEFAULT '' NOT NULL,
>     datetime_created timestamp with time zone NOT NULL,
>     datetime_modified timestamp with time zone NOT NULL,
>     confirmation character varying(64) DEFAULT '' NOT NULL,
>     flag character(1) DEFAULT 'o' NOT NULL,
>     sendnotification character varying(50) DEFAULT '' NOT NULL,
>     greeting character varying(50) DEFAULT '' NOT NULL,
>     ha1 character varying(128) DEFAULT '' NOT NULL,
>     "domain" character varying(128) DEFAULT '' NOT NULL,
>     ha1b character varying(128) DEFAULT '' NOT NULL,
>     perms character varying(32),
>     allow_find character(1) DEFAULT '0' NOT NULL,
>     timezone character varying(128),
>     first_reg timestamp with time zone,
>     last_reg timestamp with time zone
> );
> 
> CREATE UNIQUE INDEX subscriber_primary ON subscriber USING btree
> ("domain", user_id);
> 
> CREATE TABLE "location" (
>     user_id character varying(50) DEFAULT '' NOT NULL,
>     "domain" character varying(100) DEFAULT '' NOT NULL,
>     contact character varying(255) DEFAULT '' NOT NULL,
>     expires timestamp with time zone,
>     q numeric(10,2),
>     callid character varying(255),
>     cseq numeric(11,0),
>     last_modified timestamp with time zone DEFAULT now() NOT NULL,
>     replicate numeric(10,0),
>     state numeric(3,0)
> );
> 
> CREATE INDEX location_primary ON "location" USING btree (user_id);
> 
> CREATE TABLE grp (
>     user_id character varying(50) NOT NULL,
>     grp character varying(50) NOT NULL,
>     last_modified timestamp with time zone DEFAULT now() NOT NULL,
>     "domain" character varying(128)
> );
> 
> CREATE UNIQUE INDEX grp_primary ON grp USING btree (user_id, grp);
> 
> Create a user in the database, for instance:
> 
> Create user seruser with password 'seruserpass';
> 
> Grant permission on the tables to the newly created user:
> 
> Grant all on table location to seruser;
> Grant all on table subscriber to seruser;
> Grant all on table grp to seruser;
> 
> Ok, this is the basic database.
> 
> You need this line in the ser.cfg file:
> 
> loadmodule "/usr/ser/lib/ser/modules/postgres.so"
> 
> modparam("usrloc","db_mode",1)
> modparam("usrloc","user_column","user_id")
> modparam("usrloc","db_url",
>         "sql://seruser:seruserpass@db.host.name.or.ip:5432/dbname")
> 
> modparam("group","user_column","user_id")
> modparam("group","db_url",
>         "sql://seruser:seruserpass@db.host.name.or.ip:5432/dbname")
> 
> modparam("auth_db","user_column","user_id")
> modparam("auth_db","db_url",
>         "sql://seruser:seruserpass@db.host.name.or.ip:5432/dbname")
> 
> By the way, I had problems changing the column names.   I've got many
> other
> tables and applications that refer to the column names as they were in
> 0.8.10.  Since the column name change didn't really affect anything but
> the
> name, I left them the way they were.  Changing them would be
> too much work for me! 
> 
> That is it.  Oh, there is one other thing.
> Your serctl program won't work.  Use the serctl call serpgctl and
> rename it serctl if you wish.
> 
> Good luck,
> ---greg
> Greg Fausak
> Addaline.com, Inc.
> greg at addaline.com
> www.addaline.com
> 




More information about the sr-users mailing list