- Upgrading to LedgerSMB 1.2
- From LedgerSMB (1.1.12 or earlier)
- or
- SQL-Ledger (2.6.27 or earlier)
- This document contains information on how to upgrade from earlier versions of
- LedgerSMB or SQL-Ledger. This upgrade is a major revision and may not go
- smoothly. We recommend that the reader start by reading the section on manual
- installation and then start by trying the automated means mentioned later.
- Also this document assumes that the reader is already familiar with the release
- notes. If you have not already done so, please read the release_notes file in
- the doc/ directory.
- Before you begin, make sure that you are running at least PostgreSQL 8.0. If
- you are running a prior version, you will need to dump your data, upgrade the
- database server and restore the data before proceeding.
- You may want to review the INSTALL file as well, as common troubleshooting
- information and more detail may be found there.
- MANUAL UPGRADE:
- ===============================================================================
- 1) Back up old installation
- THis is a major upgrade. If something goes wrong, you want to be able to get
- back to a known good state. To back up the old installation do as follows:
- a) Copy the LedgerSMB install directory (for example /usr/local/ledger-smb)
- to another location
- b) Back up the database using pg_dump or other PostgreSQL backup program.
- c) (optional) Make a live bakup of the accounting database by creating a new
- db with it as the template. Something like:
- createdb -U postgres -T ledgersmb accounting_backup
- 2) Check New Dependencies
- The Build.PL script can be used to test for unmet dependencies and run other
- tests. It doesn't install anything yet, but it will tell you what you are
- missing. To check for dependencies, run "perl Build.PL" from the command line.
- Missing dependencies can generally be installed via a Linux distributor's
- package manager or by CPAN.
- Once this is done and dependencies are satisfied, you can check to see whether
- the installation nominally works by running "./Build test" from the command
- line. The test suites currently check to make sure all the perl modules load
- and that a number of numeric tests are passed.
- Dependencies which are recommended are needed only for specific functionality
- and may not be required in all circumstances. These include:
- * Net::TCLink for credit card processing in a POS environment
- * Parse::RecDescent for the CLI script host
- 3) Upgrade database
- a) cd to the sql/legacy/ directory of the new ledger directory
- b) run "psql" with appropriate options to connect to your database.
- c) Note the db schema version by running the following query:
- "SELECT value from defaults where setting_key = 'version';" (1.2.0 or
- later)
- or
- "SELECT version FROM defaults;" (SQL-Ledger 2.6.x or LedgerSMB 1.1.x
- or earlier)
- d) Run the SQL upgrade scripts in order starting with the one whose name
- begins with "Pg-upgrade-[version]" (each of these scripts will upgrade to
- the next database version which is also identified in the file name).
- N.B.: use `ls -v` to see the scripts in version order and run them
- in the order shown by this command.
- e) If you have a problem running the scripts (errors due to ownership
- or you just want to change ownership of the tables), connect to the
- database as you did in c above and at the => prompt:
- "\d"
- You will see a list of all tables, sequences, triggers, etc. After
- creating a user (see the INSTALL file for details), you can change
- ownership of the relation by running the following at the => prompt:
- "ALTER TABLE|SEQUENCE|TRIGGER public.<relation_name> OWNER TO "new_owner";
- Select the appropriate relation type and relation_name.
- Rerun the upgrade scripts starting with the first one that failed.
- Note that subpara d above will create three tables that may not actually be
- used depending on your setup: users, users_conf, and session. In general if
- you have multiple datasets, these tables will only be used in one.
- 4) Decide where to put the user/session management tables. In general, we
- recommend as follows:
- 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.
- For a single dataset, just import sql/Pg-central.sql into your database.
- If you need to create another dataset, you can create the db and import the
- sql/Pg-central.sql file into it.
- 5) Set the admin password:
- a) From psql, determine what admin password you wish to use. Then type:
- "update users_conf set password = md5('my_password');"
- Naturally you would use your password instead of my_password.
- 6) Create ledgersmb.conf using appropriate values from the old ledger-smb.conf
- and connection data for the central authentication database.
- ledgersmb.conf.default can be used as a base.
- 7) Import the users. Run the import-members script to do this.
- 8) Copy the files from the LedgerSMB tarball over your existing installation.
- 9) Delete the users directory.
- 10) Upgrade your templates. Run the following command:
- perl upgrade_templates.pl $templatedir
- Where $templatedir is the directory of your templates.
- 11) You can test basic parts of the installation by running Build ./test at
- this point.
- Congratulations, you have manually upgraded to LedgerSMB 1.2.
- TODO: Add upgrade.pl script and automate the above process.
|