add IO-stringy (IO::Scalar) to instructions
[freeside.git] / httemplate / docs / upgrade10.html
index 2f2c2da..0e79244 100644 (file)
@@ -8,7 +8,9 @@ install Net::SSH 0.08
 - In httpd.conf, change <Files ~ \.cgi> to  <Files ~ (\.cgi|\.html)>
 - In httpd.conf, change <b>AddHandler perl-script .cgi</b> or <b>SetHandler perl-script</b> to <b>AddHandler perl-script .cgi .html</b>
 
-install NetAddr::IP, Chart::Base, IPC::ShareLite and Locale::SubCountry
+install NetAddr::IP, Chart::Base, Locale::SubCountry, 
+JavaScript::RPC (JavaScript::RPC::Server::CGI), Text::CSV_XS, 
+Spreadsheet::WriteExcel and IO-stringy (IO::Scalar) <!-- and Crypt::YAPassGen-->
 
 INSERT INTO msgcat ( msgnum, msgcode, locale, msg ) VALUES ( 20, 'svc_external-id', 'en_US', 'External ID' );
 INSERT INTO msgcat ( msgnum, msgcode, locale, msg ) VALUES ( 21, 'svc_external-title', 'en_US', 'Title' );
@@ -190,6 +192,72 @@ CREATE TABLE part_pkg_option (
 CREATE INDEX part_pkg_option1 ON part_export_option ( pkgpart );
 CREATE INDEX part_pkg_option2 ON part_export_option ( optionname );
 
+CREATE TABLE rate (
+    ratenum serial NOT NULL,
+    reatename varchar(80) NOT NULL,
+    PRIMARY KEY (ratenum)
+);
+
+CREATE TABLE rate_detail (
+    ratenum int NOT NULL,
+    orig_regionnum int NULL,
+    dest_regionnum int NOT NULL,
+    min_included int NOT NULL,
+    min_charge decimal(10,2) NOT NULL,
+    sec_granularity int NOT NULL
+);
+CREATE UNIQUE INDEX rate_detail1 ON rate_detail ( ratenum, orig_regionnum, dest_regionnum );
+
+CREATE TABLE rate_region (
+    regionnum serial NOT NULL,
+    regionname varchar(80) NOT NULL,
+    PRIMARY KEY (regionnum)
+);
+
+CREATE TABLE rate_prefix (
+    prefixnum serial NOT NULL,
+    regionnum int NOT NULL, 
+    countrycode varchar(3) NOT NULL,
+    npa varchar(6) NULL,
+    nxx varchar(3) NULL,
+    PRIMARY KEY (prefixnum)
+);
+CREATE INDEX rate_prefix1 ON rate_prefix ( countrycode );
+CREATE INDEX rate_prefix2 ON rate_prefix ( regionnum );
+
+CREATE TABLE reg_code (
+    codenum serial NOT NULL,
+    code varchar(80) NOT NULL,
+    agentnum int NOT NULL,
+    PRIMARY KEY (codenum)
+);
+CREATE UNIQUE INDEX reg_code1 ON reg_code ( agentnum, code );
+CREATE INDEX reg_code2 ON reg_code ( agentnum );
+
+CREATE TABLE reg_code_pkg (
+    codenum int NOT NULL,
+    pkgpart int NOT NULL
+);
+CREATE UNIQUE INDEX reg_code_pkg1 ON reg_code_pkg ( codenum, pkgpart );
+CREATE INDEX reg_code_pkg2 ON reg_code_pkg ( codenum );
+
+CREATE TABLE clientapi_session (
+    sessionnum serial NOT NULL,
+    sessionid varchar(80) NOT NULL,
+    namespace varchar(80) NOT NULL,
+    PRIMARY KEY (sessionnum)
+);
+CREATE UNIQUE INDEX clientapi_session1 ON clientapi_session ( sessionid, namespace );
+
+CREATE TABLE clientapi_session_field (
+    fieldnum serial NOT NULL,
+    sessionnum int NOT NULL,
+    fieldname varchar(80) NOT NULL,
+    fieldvalue text NULL,
+    PRIMARY KEY (fieldnum)
+);
+CREATE UNIQUE INDEX clientapi_session_field1 ON clientapi_session_field ( sessionnum, fieldname );
+
 DROP INDEX cust_bill_pkg1;
 
 ALTER TABLE cust_bill_pkg ADD itemdesc varchar(80) NULL;
@@ -217,6 +285,10 @@ ALTER TABLE pkg_svc ADD primary_svc char(1) NULL;
 ALTER TABLE h_pkg_svc ADD primary_svc char(1) NULL;
 ALTER TABLE svc_forward ADD src varchar(255) NULL;
 ALTER TABLE h_svc_forward ADD src varchar(255) NULL;
+ALTER TABLE part_pkg ADD promo_code varchar(80) NULL;
+ALTER TABLE h_part_pkg ADD promo_code varchar(80) NULL;
+CREATE INDEX part_pkg2 ON part_pkg ( promo_code );
+CREATE INDEX h_part_pkg2 ON h_part_pkg ( promo_code );
 
 On recent Pg versions:
 
@@ -224,9 +296,12 @@ ALTER TABLE svc_forward ALTER COLUMN srcsvc DROP NOT NULL;
 ALTER TABLE h_svc_forward ALTER COLUMN srcsvc DROP NOT NULL;
 ALTER TABLE svc_forward ALTER COLUMN dstsvc DROP NOT NULL;
 ALTER TABLE h_svc_forward ALTER COLUMN dstsvc DROP NOT NULL;
+ALTER TABLE cust_main ALTER COLUMN zip DROP NOT NULL;
+ALTER TABLE h_cust_main ALTER COLUMN zip DROP NOT NULL;
 
 Or on Pg versions that don't support DROP NOT NULL (tested on 7.1 and 7.2 so far):
 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' ) );
+UPDATE pg_attribute SET attnotnull = FALSE WHERE ( attname = 'zip' ) AND ( attrelid = ( SELECT oid FROM pg_class WHERE relname = 'cust_main' ) OR attrelid = ( SELECT oid FROM pg_class WHERE relname = 'h_cust_main' ) );
 
 If you created your database with a version before 1.4.2, dump database, edit:
 - cust_main and h_cust_main: increase otaker from 8 to 32
@@ -256,7 +331,7 @@ optionally:
 mandatory again:
 
 dbdef-create username
-create-history-tables username cust_bill_pkg_detail router part_svc_router addr_block svc_broadband acct_snarf svc_external cust_pay_refund cust_pay_void
+create-history-tables username cust_bill_pkg_detail router part_svc_router addr_block svc_broadband acct_snarf svc_external cust_pay_refund cust_pay_void part_pkg_option rate rate_detail rate_region rate_prefix reg_code reg_code_pkg
 dbdef-create username
 
 apache - fix <Files> sections to include .html also