Run script/smokeornot_server.pl to test the application. ~~~~ ## /home/gregoa/secret/Connectinfo.pm ## package Connectinfo; use strict; use warnings; our $connect_info = [ 'dbi:Pg:dbname=YOUR_DB_NAME', 'YOUR_DB_USER', 'YOUR_DB_PASSWORD', { AutoCommit => 1, pg_enable_utf8 => 1 }, ]; 1; ~~~~ ## database schema ## SET client_encoding = 'UTF8'; CREATE TYPE status AS ENUM ( 'non-smoking', 'mixed', 'smoking' ); CREATE TABLE bar ( id integer NOT NULL, name character varying(256) NOT NULL, street character varying(256), city integer NOT NULL, url character varying(256), comment text, status status NOT NULL, last_updated timestamp with time zone DEFAULT now() NOT NULL ); CREATE TABLE city ( id integer NOT NULL, zip character varying(32), name character varying(256) NOT NULL, country integer NOT NULL ); CREATE TABLE country ( id integer NOT NULL, name character varying(256) NOT NULL ); CREATE SEQUENCE bar_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; CREATE SEQUENCE city_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; CREATE SEQUENCE country_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE bar ALTER COLUMN id SET DEFAULT nextval('bar_id_seq'::regclass); ALTER TABLE city ALTER COLUMN id SET DEFAULT nextval('city_id_seq'::regclass); ALTER TABLE country ALTER COLUMN id SET DEFAULT nextval('country_id_seq'::regclass); ALTER TABLE ONLY bar ADD CONSTRAINT bar_pkey PRIMARY KEY (id); ALTER TABLE ONLY city ADD CONSTRAINT city_pkey PRIMARY KEY (id); ALTER TABLE ONLY city ADD CONSTRAINT city_zip_name_country_key UNIQUE (zip, name, country); ALTER TABLE ONLY country ADD CONSTRAINT country_name_key UNIQUE (name); ALTER TABLE ONLY country ADD CONSTRAINT country_pkey PRIMARY KEY (id); ALTER TABLE ONLY bar ADD CONSTRAINT fkey_city FOREIGN KEY (city) REFERENCES city(id); ALTER TABLE ONLY city ADD CONSTRAINT fkey_country FOREIGN KEY (country) REFERENCES country(id);