summaryrefslogtreecommitdiff
path: root/UPGRADE
blob: deaca6359de8e809072c3ae18438cfc4d548c63a (plain)
  1. Upgrading to LedgerSMB 1.2
  2. From LedgerSMB (1.1.1 or earlier)
  3. or
  4. SQL-Ledger (2.6.19 or earlier)
  5. This document contains information on how to upgrade from earlier versions of
  6. LedgerSMB or SQL-Ledger. This upgrade is a major revision and may not go
  7. smoothly. We recommend that the reader start by reading the section on manual
  8. installation and then start by trying the automated means mentioned later.
  9. Also this document assumes that the reader is already familiar with the release
  10. notes. If you have not already done so, please read the release_notes file in
  11. the doc/ directory.
  12. MANUAL UPGRADE:
  13. ===============================================================================
  14. 1) Back up old installation
  15. THis is a major upgrade. If something goes wrong, you want to be able to get
  16. back to a known good state. To back up the old installation do as follows:
  17. a) Copy the LedgerSMB install directory (for example /usr/local/ledger-smb)
  18. to another location
  19. b) Back up the database using pg_dump or other PostgreSQL backup program.
  20. c) (optional) Make a live bakup of the accounting database by creating a new
  21. db with it as the template. Something like:
  22. createdb -U postgres -T ledgersmb accounting_backup
  23. 2) Check New Dependencies
  24. The Build.PL script can be used to test for unmet dependencies and run other
  25. tests. It doesn't install anything yet, but it will tell you what you are
  26. missing. To check for dependencies, run "perl Build.PL" from the command line.
  27. Missing dependencies can generally be installed via a Linux distributor's
  28. package manager or by CPAN.
  29. Once this is done and dependencies are satisfied, you can check to see whether
  30. the installation nominally works by running "./Build test" from the command
  31. line. The test suites currently check to make sure all the perl modules load
  32. and that a number of numeric tests are passed.
  33. Dependencies which are recommended are needed only for specific functionality
  34. and may not be required in all circumstances. These include:
  35. * Net::TCLink for credit card processing in a POS environment
  36. * Parse::RecDescent for the CLI script host
  37. 3) Upgrade database
  38. a) cd to the sql/legacy/ directory of the new ledger directory
  39. b) run "psql" with appropriate options to connect to your database.
  40. c) Note the db version by running the following query:
  41. "SELECT version FROM defaults;"
  42. d) Run the SQL upgrade scripts in order starting with the one whose name
  43. begins with "Pg-upgrade-[version]" (each of these scripts will upgrade to
  44. the next database version which is also identified in the file name).
  45. Note that this will create three tables that may not actually be used depending
  46. on your setup: users, users_conf, and session. In general if you have multiple
  47. datasets, these tables will only be used in one.
  48. 4) Decide where to put the user/session management tables. In general, we
  49. recommend as follows:
  50. a) Single dataset installations should use the user tables in the dataset.
  51. b) Multicompany installations should use user tables in a separate dataset
  52. from any accounting data.
  53. If you need to create another dataset, you can create the db and import the
  54. sql/Pg-central.sql file into it.
  55. 5) Set the admin password:
  56. a) From psql, determine what admin password you wish to use. Then type:
  57. "update users_conf set password = md5('my_password');"
  58. Naturally you would use your password instead of my_password.
  59. 6) Import the users. Run the import-members script to do this.
  60. 7) Copy the files from the LedgerSMB tarball over your existing installation.
  61. 8) Delete the users directory.
  62. Congratulations, you have manually upgraded to LedgerSMB 1.2.
  63. TODO: Add upgrade.pl script and automate the above process.