Freeside talk:1.7:Documentation:Upgrading

From Freeside
Revision as of 11:46, 12 January 2009 by Ivan (talk | contribs) (Reverted edits by LiczeLboou (Talk); changed back to last version by Ivan)

Jump to: navigation, search

int->bigint for the byte counting stuff


clear; for t in svc_acct h_svc_acct; do for c in upbytes upbytes_threshold downbytes downbytes_threshold totalbytes totalbytes_threshold; do echo "BEGIN WORK;
ALTER TABLE $t ADD COLUMN ${c}_new bigint;
UPDATE $t SET ${c}_new = CAST($c AS bigint);
ALTER TABLE $t DROP COLUMN $c; 
ALTER TABLE $t RENAME COLUMN ${c}_new TO $c;
COMMIT WORK;
"; done; done

clear; for t in prepay_credit h_prepay_credit; do for c in upbytes downbytes totalbytes; do echo "BEGIN WORK;
ALTER TABLE $t ADD COLUMN ${c}_new bigint;
UPDATE $t SET ${c}_new = CAST($c AS bigint);
ALTER TABLE $t DROP COLUMN $c;
ALTER TABLE $t RENAME COLUMN ${c}_new TO $c;
COMMIT WORK;
"; done; done

bigger payinfo fields for encryption

ALTER TABLE cust_main ADD payinfo_new varchar(512);
UPDATE cust_main SET payinfo_new = payinfo;
ALTER TABLE cust_main DROP payinfo;
ALTER TABLE cust_main RENAME payinfo_new TO payinfo;

ALTER TABLE cust_main ADD paycvv_new varchar(512);
UPDATE cust_main SET paycvv_new = paycvv;
ALTER TABLE cust_main DROP paycvv;
ALTER TABLE cust_main RENAME paycvv_new TO paycvv;

ALTER TABLE h_cust_main ADD payinfo_new varchar(512);
UPDATE h_cust_main SET payinfo_new = payinfo;
ALTER TABLE h_cust_main DROP payinfo;
ALTER TABLE h_cust_main RENAME payinfo_new TO payinfo;

ALTER TABLE h_cust_main ADD paycvv_new varchar(512);
UPDATE h_cust_main SET paycvv_new = paycvv;
ALTER TABLE h_cust_main DROP paycvv;
ALTER TABLE h_cust_main RENAME paycvv_new TO paycvv;

ALTER TABLE cust_pay ADD payinfo_new varchar(512);
UPDATE cust_pay SET payinfo_new = payinfo;
ALTER TABLE cust_pay DROP payinfo;
ALTER TABLE cust_pay RENAME payinfo_new TO payinfo;

ALTER TABLE h_cust_pay ADD payinfo_new varchar(512);
UPDATE h_cust_pay SET payinfo_new = payinfo;
ALTER TABLE h_cust_pay DROP payinfo;
ALTER TABLE h_cust_pay RENAME payinfo_new TO payinfo;


ALTER TABLE cust_pay_void ADD payinfo_new varchar(512);
UPDATE cust_pay_void SET payinfo_new = payinfo;
ALTER TABLE cust_pay_void DROP payinfo;
ALTER TABLE cust_pay_void RENAME payinfo_new TO payinfo;

ALTER TABLE h_cust_pay_void ADD payinfo_new varchar(512);
UPDATE h_cust_pay_void SET payinfo_new = payinfo;
ALTER TABLE h_cust_pay_void DROP payinfo;
ALTER TABLE h_cust_pay_void RENAME payinfo_new TO payinfo;


ALTER TABLE cust_pay_batch ADD payinfo_new varchar(512);
UPDATE cust_pay_batch SET payinfo_new = payinfo;
ALTER TABLE cust_pay_batch DROP payinfo;
ALTER TABLE cust_pay_batch RENAME payinfo_new TO payinfo;

ALTER TABLE h_cust_pay_batch ADD payinfo_new varchar(512);
UPDATE h_cust_pay_batch SET payinfo_new = payinfo;
ALTER TABLE h_cust_pay_batch DROP payinfo;
ALTER TABLE h_cust_pay_batch RENAME payinfo_new TO payinfo;


ALTER TABLE cust_refund ADD payinfo_new varchar(512);
UPDATE cust_refund SET payinfo_new = payinfo;
ALTER TABLE cust_refund DROP payinfo;
ALTER TABLE cust_refund RENAME payinfo_new TO payinfo;

ALTER TABLE h_cust_refund ADD payinfo_new varchar(512);
UPDATE h_cust_refund SET payinfo_new = payinfo;
ALTER TABLE h_cust_refund DROP payinfo;
ALTER TABLE h_cust_refund RENAME payinfo_new TO payinfo;

bigger _password fields for weird LDAP encodings

ALTER TABLE svc_acct ADD _password_new varchar(512) NOT NULL;
UPDATE svc_acct SET _password_new = _password;
ALTER TABLE svc_acct DROP _password;
ALTER TABLE svc_acct RENAME _password_new TO _password;

ALTER TABLE h_svc_acct ADD _password_new varchar(512) NOT NULL;
UPDATE h_svc_acct SET _password_new = _password;
ALTER TABLE h_svc_acct DROP _password;
ALTER TABLE h_svc_acct RENAME _password_new TO _password;

Issues with freeside-upgrade

I had lots of issues while trying to run freeside-upgrade. The fix I finally made work was to run the script as follows

freeside-upgrade -d username > dbupdatefile

and then manually dump the dbupdatefile to psql

psql -f dbupdatefile

It would be helpful if you could document said "issues" here, or in the forum, or on the mailing list, rather than only documenting their existence and a workaround. That way someone encountering the same problem might provide a fix so that the script works as intended for you. FWIW, freeside-upgrade has worked for myself and others for many upgrades to date.