Loading...

ledger-smb-users@lists.sourceforge.net

[Prev] Thread [Next]  |  [Prev] Date [Next]

[Ledger-smb-users] Upgrading and converting: SL-->LSMB 1.1-->LSMB 1.2.26 Victor Wren Sun Apr 01 09:00:38 2012

I built up a new server (from compiled sources), and I'm trying to move 
an existing SQL-Ledger 2.6.27 system over to LSMB (these were running on 
an ancient Fedora 4 system).  I first converted to 1.1.12, per the 
suggestions, and it seemed to go smoothly-- It had exactly the same 
problems as SL at that level (didn't play nice with Perl 5.14 or 
PostgreSQL 9), so once I verified that all my data and user accounts 
were working correctly, I tried to bring things more up to date by 
moving to 1.2.26.

This is where things started to go wrong for me. (everything is backed 
up in a couple of known "good" snapshots, so I'm taking my time to get 
this right, and I've already rolled it back a couple of times to try it 
from a different angle).

The instructions for creating the new type of db-stored user account are 
a little cryptic.  Right now I have three datasets, which are held in 
databases called:
sql_general_ledger
sql_ledger_farm
sql_ledger_weld
(revealing their legacy).  The instructions recommend bringing the user 
data into an existing database, UNLESS there is more than one company 
(dataset), in which case the user info should be stored separately. 
Creating the user information in the existing companies failed with:

psql:Pg-central.sql:76: NOTICE:  CREATE TABLE will create implicit 
sequence "session_session_id_seq1" for serial column "session.session_id"
psql:Pg-central.sql:76: ERROR:  relation "session" already exists
ROLLBACK

So none of the tables was created in the accounting database. After 
searching a few hours longer, I could still not determine whether a user 
database was needed for each company, or one user database for all 
companies. The instructions suggested the former ("If you need to create 
another dataset, you can create the db and import the sql/Pg-central.sql 
file into it."  (but I have 3 existing datasets, and importing 
Pg-central didn't work on them) also implied the need for a separate 
user database, from "/UPGRADE":
"  a)  Single dataset installations should use the user tables in the 
dataset.
   b)  Multicompany installations should use user tables in a separate 
dataset from any accounting data."

So I created 3 user databases separate from the accounting information:
ledgersmb_users_phs
ledgersmb_users_farm
ledgersmb_users_weld
I used Pg-central.pl to populate these databases, which seemed to work 
(logging into each database as postgres superuser, I used "\i 
Pg-central.pl" to import).
It was also unclear how database access works in regard to 
ledgersmb.conf--does DBname point to the user info database or the 
accounting database?  So I set up the DBname to point to 
ledgersmb_users_phs. Not sure what to do about the others, but hopefully 
it would become clearer as I learned more.  I imported the users from 
the existing "members" file (after editing the members file to change 
the database each user belonged to) using import-members.pl, and it 
reported success (falsely, it appears--admin is the only row that exists 
in each database's users table).

I did manage to get the admin password to work (doing "update users_conf 
set password = md5('password');" in the user database that is pointed to 
in ledgersmb.conf).  But it doesn't appear to be seeing any of my 
existing datasets (no surprise there, because nothing is telling it what 
database to look in!)  Also, user import doesn't seem to have actually 
worked, because the user information is absent.  I had evidently been 
operating perfectly happily for years with no sql-ledger.conf file (it 
didn't seem to need it!), but that's obviously not going to fly anymore.

I'm pretty sure this would be easy to clean up, if I knew where things 
were supposed to be pointing, and which database which tables should 
live in.  Should there be one user database or several?  If the 
user-data belongs in among the accounting data, how to get past the 
"session" relation error (e.g. just drop the "session" table before 
importing Pg-central)?  How do we get from the user database to the 
accounting info database (obviously not an issue if the user info lives 
in the same database)?  If multiple user databases are employed, how 
does ledgersmb.conf work with that (or multiple companies for that matter)?

Also, is going from 1.1.12 to 1.2.26 worth it, or am I going to have 
exactly the same amount of pain going 1.2.26->1.3?  Should I go straight 
from 1.1.12 to 1.3.x? Or should I go straight from SQL-Ledger 2.6.27 to 
ledgerSMB 1.3.x?

I hope this doesn't sound as confused as I feel.  Thanks!
Victor Wren

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ledger-smb-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/ledger-smb-users