add pkey to batch payments and fix a doc typo
[freeside.git] / httemplate / docs / upgrade8.html
index b35194d..6be51d6 100644 (file)
@@ -5,7 +5,7 @@
 <h1>Upgrading to 1.4.0 from 1.3.1</h1>
 <ul>
   <li>If migrating from less than 1.3.1, see these <a href="upgrade7.html">instructions</a> first.
-  <li>Back up your data and current Freeside installation.
+  <li><font size="+2" color="#ff0000">Backup your database and current Freeside installation.</font> (with&nbsp;<a href="http://www.ca.postgresql.org/devel-corner/docs/postgres/backup.html">PostgreSQL</a>) (with&nbsp;<a href="http://www.mysql.com/documentation/mysql/bychapter/manual_MySQL_Database_Administration.html#Backup">MySQL</a>)
   <li>Install <a href="http://www.apache-asp.org/">Apache::ASP</a> or <a href="http://www.masonhq.com/">HTML::Mason</a>.
 </ul>
 <table>
@@ -33,6 +33,7 @@ PerlSetVar Global /usr/local/etc/freeside/asp-global/
 </pre></font>
     </ul></td>
     <td><ul>
+      <li>NOTE: Mason support is still a bit buggy in the 1.4.0 prereleases.  This will be fixed before 1.4.0.  You have been warned.
       <li>Run <tt>make masondocs</tt>
       <li>Copy <tt>masondocs/</tt> to your web server's document space.
       <li>Copy <tt>htetc/handler.pl</tt> to your web server's configuration directory.
@@ -72,34 +73,82 @@ CREATE TABLE svc_forward (
 );
 
 CREATE TABLE cust_credit_bill (
+  creditbillnum int primary key,
   crednum int not null,
   invnum int not null,
-  _date timestamp not null,
-  amount decimal(10,2) not null,
-  PRIMARY KEY (crednum)
+  _date int not null,
+  amount decimal(10,2) not null
 );
 
+CREATE TABLE cust_bill_pay (
+  billpaynum int primary key,
+  invnum int not null,
+  paynum int not null,
+  _date int not null,
+  amount decimal(10,2) not null
+);
+
+CREATE TABLE cust_credit_refund (
+  creditrefundnum int primary key,
+  crednum int not null,
+  refundnum int not null,
+  _date int not null,
+  amount decimal(10,2) not null
+);
+
+CREATE TABLE part_svc_column (
+  columnnum int primary key,
+  svcpart int not null,
+  columnname varchar(64) not null,
+  columnvalue varchar(80) null,
+  columnflag char(1) null
+);
+
+CREATE TABLE queue (
+  jobnum int primary key,
+  job varchar not null,
+  _date int not null,
+  status varchar(80) not null
+);
+
+CREATE TABLE queue_arg (
+  argnum int primary key,
+  jobnum int not null,
+  arg varchar null
+);
+CREATE INDEX queue_arg1 ON queue_arg ( jobnum );
+
+CREATE TABLE part_pop_local (
+  localnum int primary key,
+  popnum int not null,
+  city varchar(80) null,
+  state char(2) null,
+  npa char(3) not null,
+  nxx char(3) not null
+);
+CREATE UNIQUE INDEX part_pop_local1 ON part_pop_local ( npa, nxx );
+
 ALTER TABLE svc_acct ADD domsvc integer NOT NULL;
 ALTER TABLE svc_domain ADD catchall integer NULL;
-ALTER TABLE part_svc ADD svc_acct__domsvc integer NULL;
-ALTER TABLE part_svc ADD svc_acct__domsvc_flag char(1) NULL;
-ALTER TABLE part_svc ADD svc_domain__catchall integer NULL;
-ALTER TABLE part_svc ADD svc_domain__catchall_flag char(1) NULL;
-ALTER TABLE part_svc ADD svc_forward__srcsvc integer NULL;
-ALTER TABLE part_svc ADD svc_forward__srcsvc_flag char(1) NULL;
-ALTER TABLE part_svc ADD svc_forward__dstsvc integer NULL;
-ALTER TABLE part_svc ADD svc_forward__dstsvc_flag char(1) NULL;
-ALTER TABLE part_svc ADD svc_forward__dst integer NULL;
-ALTER TABLE part_svc ADD svc_forward__dst_flag char(1) NULL;
 ALTER TABLE cust_main ADD referral_custnum integer NULL;
+ALTER TABLE cust_pay ADD custnum integer;
+ALTER TABLE cust_pay_batch ADD paybatchnum integer;
+ALTER TABLE cust_refund ADD custnum integer;
 CREATE INDEX cust_main3 ON cust_main ( referral_custnum );
+CREATE INDEX cust_credit_bill1 ON cust_credit_bill ( crednum );
 CREATE INDEX cust_credit_bill2 ON cust_credit_bill ( invnum );
+CREATE INDEX cust_bill_pay1 ON cust_bill_pay ( invnum );
+CREATE INDEX cust_bill_pay2 ON cust_bill_pay ( paynum );
+CREATE INDEX cust_credit_refund1 ON cust_credit_refund ( crednum );
+CREATE INDEX cust_credit_refund2 ON cust_credit_refund ( refundnum );
+CREATE UNIQUE INDEX cust_pay_batch_pkey ON cust_pay_batch ( paybatchnum );
+CREATE UNIQUE INDEX part_svc_column1 ON part_svc_column ( svcpart, columnname );
 </pre>
 
   <li>If you are using PostgreSQL, apply the following changes to your database:
 <pre>
 CREATE UNIQUE INDEX agent_pkey ON agent ( agentnum );
-CREATE UNIQUE INDEX agent_type_pkey agent_type ( typenum );
+CREATE UNIQUE INDEX agent_type_pkey ON agent_type ( typenum );
 CREATE UNIQUE INDEX cust_bill_pkey ON cust_bill ( invnum );
 CREATE UNIQUE INDEX cust_credit_pkey ON cust_credit ( crednum );
 CREATE UNIQUE INDEX cust_main_pkey ON cust_main ( custnum );
@@ -152,5 +201,51 @@ ALTER TABLE cust_main ADD COLUMN comments varchar NULL;
   <li>Run bin/dbdef-create.
   <li>create a service based on svc_forward
   <li>Run bin/fs-migrate-svc_acct_sm
-  <li>create the conf.dbsrc/user_policy as appropriate for your site
+  <li>Run bin/fs-migrate-payref
+  <li>Run bin/fs-migrate-part_svc
+  <li><b>After running bin/fs-migrate-payref</b>, apply the following changes to your database:
+  <table border><tr><th>PostgreSQL</th><th>MySQL, others</th></tr>
+<tr><td>
+<font size=-1><pre>
+CREATE TABLE cust_pay_temp (
+  paynum int primary key,
+  custnum int not null,
+  paid decimal(10,2) not null,
+  _date int null,
+  payby char(4) not null,
+  payinfo varchar(16) null,
+  paybatch varchar(80) null
+);
+INSERT INTO cust_pay_temp SELECT * from cust_pay;
+DROP TABLE cust_pay;
+ALTER TABLE cust_pay_temp RENAME TO cust_pay;
+CREATE UNIQUE INDEX cust_pay1 ON cust_pay paynum;
+CREATE TABLE cust_refund_temp (
+  refundnum int primary key,
+  custnum int not null,
+  _date int null,
+  refund decimal(10,2) not null,
+  otaker varchar(8) not null,
+  reason varchar(80) not null,
+  payby char(4) not null,
+  payinfo varchar(16) null,
+  paybatch varchar(80) null
+);
+INSERT INTO cust_refund_temp SELECT * from cust_refund;
+DROP TABLE cust_refund;
+ALTER TABLE cust_refund_temp RENAME TO cust_refund;
+CREATE UNIQUE INDEX cust_refund1 ON cust_refund refundnum;
+</pre></font>
+</td><td>
+<font size=-1><pre>
+ALTER TABLE cust_pay DROP COLUMN invnum;
+ALTER TABLE cust_refund DROP COLUMN crednum;
+</pre></font>
+</td></tr></table>
+  <li><b>IMPORTANT: After applying the second set of database changes</b>, run bin/dbdef-create again.
+  <li>create the <a href="config.html#username_policy">user_policy configuration file</a> as appropriate for your site.
+  <li>Create the `/usr/local/etc/freeside/cache.<i>datasrc</i>' directory
+      (ownded by the freeside user).
+  <li>freeside-queued was installed with the Perl modules.  Start it now and ensure that is run upon system startup.
+</ul>
 </body>