4 install DBD::Pg 1.32 (or, if you're using a Perl version before 5.6, you could try installing DBD::Pg 1.22 with <a href="http://420.am/~ivan/DBD-Pg-1.22-fixvercmp.patch">this patch</a> and commenting out the "use DBD::Pg 1.32" at the top of DBIx/DBSchema/DBD/Pg.pm)
5 install DBIx::DBSchema 0.23
7 - If using Apache::ASP, add PerlSetVar RequestBinaryRead Off to your Apache configuration and make sure you are using Apache::ASP minimum version 2.55.
9 install NetAddr::IP, Chart::Base, IPC::ShareLite and Locale::SubCountry
11 CREATE TABLE cust_bill_pkg_detail (
16 PRIMARY KEY (detailnum)
18 CREATE INDEX cust_bill_pkg_detail1 ON cust_bill_pkg_detail ( pkgnum, invnum );
20 CREATE TABLE part_virtual_field (
21 vfieldpart int NOT NULL,
22 dbtable varchar(32) NOT NULL,
23 name varchar(32) NOT NULL,
28 PRIMARY KEY (vfieldpart)
31 CREATE TABLE virtual_field (
32 recnum integer NOT NULL,
33 vfieldpart integer NOT NULL,
34 value varchar(128) NOT NULL,
35 PRIMARY KEY (vfieldpart, recnum)
40 routername varchar(80),
42 PRIMARY KEY (routernum)
45 CREATE TABLE part_svc_router (
47 routernum int NOT NULL
50 CREATE TABLE addr_block (
52 routernum int NOT NULL,
53 ip_gateway varchar(15) NOT NULL,
54 ip_netmask int NOT NULL,
55 PRIMARY KEY (blocknum)
57 CREATE UNIQUE INDEX addr_block1 ON addr_block ( blocknum, routernum );
59 CREATE TABLE svc_broadband (
61 blocknum int NOT NULL,
62 speed_up int NOT NULL,
63 speed_down int NOT NULL,
68 CREATE TABLE acct_snarf (
71 machine varchar(255) NULL,
72 protocol varchar(80) NULL,
73 username varchar(80) NULL,
74 _password varchar(80) NULL,
75 PRIMARY KEY (snarfnum)
77 CREATE INDEX acct_snarf1 ON acct_snarf ( svcnum );
79 CREATE TABLE svc_external (
86 CREATE TABLE part_pkg_temp (
87 pkgpart serial NOT NULL,
88 pkg varchar(80) NOT NULL,
89 "comment" varchar(80) NOT NULL,
91 freq varchar(80) NOT NULL,
93 setuptax char(1) NULL,
94 recurtax char(1) NULL,
95 plan varchar(80) NULL,
97 disabled char(1) NULL,
98 taxclass varchar(80) NULL,
101 INSERT INTO part_pkg_temp SELECT * from part_pkg;
103 ALTER TABLE part_pkg_temp RENAME TO part_pkg;
104 CREATE INDEX part_pkg1 ON part_pkg(disabled);
107 ALTER TABLE part_pkg DROP CONSTRAINT part_pkg_temp_pkey;
108 ALTER TABLE part_pkg ADD PRIMARY KEY (pkgpart);
109 select setval('public.part_pkg_temp_pkgpart_seq', ( select max(pkgpart) from part_pkg) );
111 Or on Pg versions that don't support DROP CONSTRAINT and ADD PRIMARY KEY (tested on 7.1 so far):
112 DROP INDEX part_pkg_temp_pkey;
113 CREATE UNIQUE INDEX part_pkg_pkey ON part_pkg (pkgpart);
114 select setval('part_pkg_temp_pkgpart_seq', ( select max(pkgpart) from part_pkg) );
116 CREATE TABLE h_part_pkg_temp (
117 historynum serial NOT NULL,
119 history_user varchar(80) NOT NULL,
120 history_action varchar(80) NOT NULL,
121 pkgpart int NOT NULL,
122 pkg varchar(80) NOT NULL,
123 "comment" varchar(80) NOT NULL,
125 freq varchar(80) NOT NULL,
127 setuptax char(1) NULL,
128 recurtax char(1) NULL,
129 plan varchar(80) NULL,
131 disabled char(1) NULL,
132 taxclass varchar(80) NULL,
133 PRIMARY KEY (historynum)
135 INSERT INTO h_part_pkg_temp SELECT * from h_part_pkg;
136 DROP TABLE h_part_pkg;
137 ALTER TABLE h_part_pkg_temp RENAME TO h_part_pkg;
138 CREATE INDEX h_part_pkg1 ON h_part_pkg(disabled);
141 ALTER TABLE h_part_pkg DROP CONSTRAINT h_part_pkg_temp_pkey;
142 ALTER TABLE h_part_pkg ADD PRIMARY KEY (historynum);
143 select setval('public.h_part_pkg_temp_historynum_seq', ( select max(historynum) from h_part_pkg) );
145 Or on Pg versions that don't support DROP CONSTRAINT and ADD PRIMARY KEY (tested on 7.1 so far):
146 DROP INDEX h_part_pkg_temp_pkey;
147 CREATE UNIQUE INDEX h_part_pkg_pkey ON h_part_pkg (historynum);
148 select setval('h_part_pkg_temp_historynum_seq', ( select max(historynum) from h_part_pkg) );
151 DROP INDEX cust_bill_pkg1;
153 ALTER TABLE cust_bill_pkg ADD itemdesc varchar(80) NULL;
154 ALTER TABLE h_cust_bill_pkg ADD itemdesc varchar(80) NULL;
155 ALTER TABLE cust_main_county ADD taxname varchar(80) NULL;
156 ALTER TABLE h_cust_main_county ADD taxname varchar(80) NULL;
157 ALTER TABLE cust_main_county ADD setuptax char(1) NULL;
158 ALTER TABLE h_cust_main_county ADD setuptax char(1) NULL;
159 ALTER TABLE cust_main_county ADD recurtax char(1) NULL;
160 ALTER TABLE h_cust_main_county ADD recurtax char(1) NULL;
161 ALTER TABLE cust_pkg ADD last_bill int NULL;
162 ALTER TABLE h_cust_pkg ADD last_bill int NULL;
163 ALTER TABLE agent ADD disabled char(1) NULL;
164 ALTER TABLE h_agent ADD disabled char(1) NULL;
165 ALTER TABLE agent ADD username varchar(80) NULL;
166 ALTER TABLE h_agent ADD username varchar(80) NULL;
167 ALTER TABLE agent ADD _password varchar(80) NULL;
168 ALTER TABLE h_agent ADD _password varchar(80) NULL;
169 ALTER TABLE cust_main ADD paycvv varchar(4) NULL;
170 ALTER TABLE h_cust_main ADD paycvv varchar(4) NULL;
171 ALTER TABLE part_referral ADD disabled char(1) NULL;
172 ALTER TABLE h_part_referral ADD disabled char(1) NULL;
173 CREATE INDEX part_referral1 ON part_referral ( disabled );
174 ALTER TABLE pkg_svc ADD primary_svc char(1) NULL;
175 ALTER TABLE h_pkg_svc ADD primary_svc char(1) NULL;
176 ALTER TABLE svc_forward ADD src varchar(255) NULL;
177 ALTER TABLE h_svc_forward ADD src varchar(255) NULL;
179 On recent Pg versions:
181 ALTER TABLE svc_forward ALTER COLUMN srcsvc DROP NOT NULL;
182 ALTER TABLE h_svc_forward ALTER COLUMN srcsvc DROP NOT NULL;
183 ALTER TABLE svc_forward ALTER COLUMN dstsvc DROP NOT NULL;
184 ALTER TABLE h_svc_forward ALTER COLUMN dstsvc DROP NOT NULL;
186 Or on Pg versions that don't support DROP NOT NULL (tested on 7.1 and 7.2 so far):
187 UPDATE pg_attribute SET attnotnull = FALSE WHERE ( attname = 'srcsvc' OR attname = 'dstsvc' ) AND ( attrelid = ( SELECT oid FROM pg_class WHERE relname = 'svc_forward' ) OR attrelid = ( SELECT oid FROM pg_class WHERE relname = 'h_svc_forward' ) );
189 If you created your database with a version before 1.4.2, dump database, edit:
190 - cust_main and h_cust_main: increase otaker from 8 to 32
191 - cust_main and h_cust_main: change ss from char(11) to varchar(11)
192 - cust_credit and h_cust_credit: increase otaker from 8 to 32
193 - cust_pkg and h_cust_pkg: increase otaker from 8 to 32
194 - cust_refund and h_cust_refund: increase otaker from 8 to 32
195 - domain_record and h_domain_record: increase reczone from 80 to 255
196 - domain_record and h_domain_record: change rectype from char to varchar
197 - domain_record and h_domain_record: increase recdata from 80 to 255
202 CREATE INDEX cust_main6 ON cust_main ( daytime );
203 CREATE INDEX cust_main7 ON cust_main ( night );
204 CREATE INDEX cust_main8 ON cust_main ( fax );
205 CREATE INDEX cust_main9 ON cust_main ( ship_daytime );
206 CREATE INDEX cust_main10 ON cust_main ( ship_night );
207 CREATE INDEX cust_main11 ON cust_main ( ship_fax );
208 CREATE INDEX agent2 ON agent ( disabled );
209 CREATE INDEX part_bill_event2 ON part_bill_event ( disabled );
210 CREATE INDEX cust_pay4 ON cust_pay (_date);
216 dbdef-create username
217 create-history-tables username cust_bill_pkg_detail router part_svc_router addr_block svc_broadband acct_snarf svc_external
218 dbdef-create username
220 apache - fix <Files> sections to include .html also