From e1b4839dd0cc5fa13fd490f0fb276046f4c49b53 Mon Sep 17 00:00:00 2001 From: bsag Date: Sun, 16 Dec 2007 11:43:47 +0000 Subject: [PATCH] Amalgamated installing.tex and upgrading.tex into one document (manual.tex), and generated an HTML file and PDF file from this using Multi-Markdown. Only instructions for upgrading from versions of Tracks earlier than 1.043 are missing now. git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@691 a4c988fc-2ded-0310-b66e-134b36920a42 --- tracks/doc/installing.markdown | 109 ---- tracks/doc/{installing.html => manual.html} | 159 +++++- tracks/doc/manual.pdf | Bin 0 -> 118821 bytes tracks/doc/manual.tex | 591 ++++++++++++++++++++ tracks/doc/upgrading.html | 97 ---- tracks/doc/upgrading.markdown | 73 --- 6 files changed, 720 insertions(+), 309 deletions(-) delete mode 100644 tracks/doc/installing.markdown rename tracks/doc/{installing.html => manual.html} (53%) create mode 100644 tracks/doc/manual.pdf create mode 100644 tracks/doc/manual.tex delete mode 100644 tracks/doc/upgrading.html delete mode 100644 tracks/doc/upgrading.markdown diff --git a/tracks/doc/installing.markdown b/tracks/doc/installing.markdown deleted file mode 100644 index 4dc12bf8..00000000 --- a/tracks/doc/installing.markdown +++ /dev/null @@ -1,109 +0,0 @@ -Title: Installing Tracks 1.5 -Author: Tracks Development Team -Date: 2007-11-18 -Format: Complete -CSS: manual.css - - - -# Installing Tracks 1.5 # - -## Introduction ## - -Tracks 1.5 has been thoroughly beta tested by a large number of people, and should be fully stable for everyday use. However, once set up, Tracks will contain the majority of your plans for your work and personal life, so it's only sensible to make sure that you have frequent, reliable backups of your data. Full changenotes on the release can be found in `doc/CHANGELOG`. Full API documentation can be found at `doc/app/index.html`, once you have run `rake appdoc` - -There are two methods of downloading Tracks 1.5: - -1. (Recommended for most people) Download the [zipped package](http://www.rousette.org.uk/projects/files/tracks-current.zip), and unzip in your preferred location (e.g. `~/Sites` for Mac OS X users). -2. Download using Subversion: -`svn co --username=guest http://www.rousette.org.uk/svn/tracks-repos/tags/current tracks` - -## Requirements ## - -The Tracks interface is accessed through a web browser, so you need to run a webserver to serve the Tracks pages up to you. This isn't as daunting as it sounds, however: Tracks ships with a built-in web server called Mongrel which you can run on your own computer to serve the Tracks application locally. If you want to be able to access Tracks from any computer connected to the Internet, then you need to install Tracks on a publicly accessible server, and you will probably be better off using a more robust server such as [Apache](http://www.apache.org/) or [Lighttpd](http://www.lighttpd.net/) to serve the pages, particularly if it will be used by many people. - -Tracks stores its data in a database, and you can either use SQLite3, MySQL or PostgreSQL. SQLite3 is the best choice for a single user (or a small number of users) on a local installation, while MySQL or PostgreSQL is better for multiple users on a remote installation. - -### All in one installations ### - -This is the easiest solution for Mac OS X 10.4 or Windows users wanting to run Tracks locally. - -1. **Mac OS X**. [Locomotive](http://locomotive.sourceforge.net/) is an all-in one installer for Mac OS X 10.4, which includes everything you need to run Tracks with a SQLite3 database. Locomotive isn't currently Leopard compatible, and doesn't work with Panther. -2. **Windows**. [Instant Rails](http://instantrails.rubyforge.org/wiki/wiki.pl) includes everything you need, including MySQL. - -### What is included with the Tracks package ### - -1. Tracks itself -2. Rails 1.2.5 (installed in the `/vendor/rails` directory, so you do not need to install Rails yourself) -3. An empty SQLite3 database, set up with the correct database schema - -### What you need to install [whatyouneed] ### - -If you don't want to (or can't) use one of the all in one installations, you'll need to install a few things, depending on your platform and your needs. - -1. **Ruby**. Version 1.8.6 is recommended, but it is also possible to use 1.8.5, 1.8.4 and 1.8.2. Note that 1.8.3 is not compatible. If you are running Mac OS X Leopard, you already have Ruby 1.8.6 installed by default, so you have nothing to do here. You can get the source to compile yourself [here](http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz) for all platforms, or Windows users can use an easy [installer](http://rubyforge.org/frs/?group_id=167). If you're using a version of Mac OS X earlier than 10.5.0, it is recommended that you use the [instructions here](http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx) to install all the Rails dependencies, though you can skip the step to install Rails if you like. -2. **RubyGems**. The gems needed by Rails to interact with the database have to be compiled on the platform on which they will be run, so we cannot include them with the Tracks package, unlike some other gems. So you will need to [download](http://rubyforge.org/frs/?group_id=126) and install RubyGems (run `ruby setup.rb` after extracting the package). Note that once again, Mac OS X Leopard users get an easy life, because RubyGems and the SQLite3 gem is already installed. Once installed you can use RubyGems to install the gems you need for your database. If you are using SQLite3, run `sudo gem install sqlite3-ruby`, then select the appropriate package for your platform (version 1.2.1 recommended). You can use MySQL without installing a gem, but installing the gem can speed things up a bit: `sudo install gem mysql`. If you're using Leopard, there are a few work-arounds necessary, which are explained on [Mac OS Forge](http://trac.macosforge.org/projects/ruby/wiki/Troubleshooting#IcannotbuildrubymysqlonLeopardwithmysql.combinaries). The ruby-mysql bindings can sometimes be a bit troublesome to install, so to be honest, it's probably not worth the bother unless you are trying to wring maximum speed out of your system. If you are using PostgreSQL, then you can install a postgres gem: `gem install postgres`. -3. **Database**. The easiest option is to use SQLite3, as the database is included in the package. All you need then is the `sqlite3-ruby` gem, as described in step 2, and the SQLite3 libraries and binary (see [sqlite.org](http://sqlite.org/download.html) for downloads and installation instructions). If you want to use MySQL, download and install a package for your platform from [MySQL.com](http://dev.mysql.com/downloads/mysql/5.0.html). The basic steps for Postgresql should be similar to those for MySQL, but they will not be discussed further here. - -## Installation ## - - -1. [Unzip tracks][unzip] and install in a directory -2. Decide on a [database][database] to use - 1. SQLite3 - change database.yml to point to SQLite3 database - 2. MySQL - create new MySQL db and grant all privs -3. [Configure some variables][config] -4. Populate the database with the [Tracks 1.5 schema][rake] -5. [Start the server][startserver] -6. [Visit Tracks in a browser][signup] -7. [Customise Tracks][customise] - -### Unzip Tracks and install [unzip] ### - -Unzip the package and move Tracks into the directory you want to run it from. For example, for Mac OS X users, `~/Sites` is a good choice. - -### Decide on a database [database] ### - -Before you go any further, you need to decide which database you will use. See the [What you need to install][whatyouneed] section for details on installing the required components for you choice of database. - -1. **SQLite3**. All you need to do is make sure that you point Tracks to the included SQLite3 database in `/db` in the next step, [Configure variables][config]. -2. **MySQL**. Once you have MySQL installed, you need to create a database to use with Tracks 1.5. Go into a terminal and issue the following commands: -
-
-    mysql -uroot -p
-    mysql> CREATE DATABASE tracks15;
-    mysql> GRANT ALL PRIVILEGES ON tracks15.* TO yourmysqluser@localhost \
-    IDENTIFIED BY 'password-goes-here' WITH GRANT OPTION;
-
-
- -### Configure variables [config] ### - -1. Open the file `/config/database.yml` and edit the `production:` section with the details of your database. If you are using MySQL the `adapter:` line should read `adapter: mysql`, `host: localhost` (in the majority of cases), and your username and password should match those you assigned when you created the database. If you are using SQLite3, you should have only two lines under the production section: `adapter: sqlite3` and `database: db/tracks-15.db`. -2. Open the file `/config/environment.rb`, and read through the settings to make sure that they suit your setup. In most cases, all you need to change is the `SALT = "change-me"` line (change the string "change-me" to some other string of your choice), and the time zone setting. -3. If you downloaded Tracks 1.5 via Subversion, you need to duplicate the files `database.yml.tmpl` and `environment.yml.tmpl` and remove the `*.tmpl` extension from the duplicates. Similarly, duplicate `/log.tmpl` and remove the `*.tmpl` extension, then edit the files as described in steps 1 and 2 above. -4. If you are using Windows, you may need to check the 'shebang' lines (`#!/usr/bin/env ruby`) of the `/public/dispatch.*` files and all the files in the `/script` directory. They are set to `#!/usr/bin/env ruby` by default. This should work for all *nix based setups (Linux or Mac OS X), but Windows users will probably have to change it to something like `#c:/ruby/bin/ruby` to point to the Ruby binary on your system. - -### Populate your database with the Tracks 1.5 schema [rake] ### - -Open a terminal and change into the root of your Tracks 1.5 directory. Enter the following command: - -`rake db:migrate RAILS_ENV=production` - -This will update your database with the required schema for Tracks 1.5. If you are using SQLite3, it is not strictly necessary, because the SQLite3 database included with Tracks already has the schema included in it, but it should not do any harm to run the command (nothing will happen if it is up to date). - -### Start the server [startserver] ### - -While still in the Terminal inside the Tracks 1.5 root directory, issue the following command: - -`script/server -e production` - -If all goes well, you should see some text informing you that the Mongrel server is running: `** Mongrel available at 0.0.0.0:3000`. If you are already running other services on port 3000, you need to select a different port when running the server, using the `-p` option. You can stop the server again by the key combination Ctrl-C. - -### Visit Tracks in a browser [signup] ### - -Visit `http://0.0.0.0:3000/signup` in a browser (or whatever URL and port was reported when you started the server in the step above) and chose a user name and password for admin user. Once logged in as admin, you can add other (ordinary level) users. - -### Customise Tracks [customise] ### - -Once logged in, add some Contexts and Projects, and then go ahead and add your actions. You might also want to visit the Preferences page to edit various settings to your liking. Have fun! diff --git a/tracks/doc/installing.html b/tracks/doc/manual.html similarity index 53% rename from tracks/doc/installing.html rename to tracks/doc/manual.html index 2a66fb50..f0bd8821 100644 --- a/tracks/doc/installing.html +++ b/tracks/doc/manual.html @@ -6,18 +6,26 @@ + - - - Installing Tracks 1.5 + + + + + + Tracks 1.5 Manual + + - + -

Installing Tracks 1.5

+

Installing Tracks 1.5

-

Introduction

+

Introduction

Tracks 1.5 has been thoroughly beta tested by a large number of people, and should be fully stable for everyday use. However, once set up, Tracks will contain the majority of your plans for your work and personal life, so it’s only sensible to make sure that you have frequent, reliable backups of your data. Full changenotes on the release can be found in doc/CHANGELOG. Full API documentation can be found at doc/app/index.html, once you have run rake appdoc

@@ -25,17 +33,23 @@
  1. (Recommended for most people) Download the zipped package, and unzip in your preferred location (e.g. ~/Sites for Mac OS X users).
  2. -
  3. Download using Subversion: -svn co --username=guest http://www.rousette.org.uk/svn/tracks-repos/tags/current tracks
  4. +
  5. Download using Subversion:
-

Requirements

+
+
+  svn co --username=guest
+  http://www.rousette.org.uk/svn/tracks-repos/tags/current tracks
+
+
+ +

Requirements

The Tracks interface is accessed through a web browser, so you need to run a webserver to serve the Tracks pages up to you. This isn’t as daunting as it sounds, however: Tracks ships with a built-in web server called Mongrel which you can run on your own computer to serve the Tracks application locally. If you want to be able to access Tracks from any computer connected to the Internet, then you need to install Tracks on a publicly accessible server, and you will probably be better off using a more robust server such as Apache or Lighttpd to serve the pages, particularly if it will be used by many people.

Tracks stores its data in a database, and you can either use SQLite3, MySQL or PostgreSQL. SQLite3 is the best choice for a single user (or a small number of users) on a local installation, while MySQL or PostgreSQL is better for multiple users on a remote installation.

-

All in one installations

+

All-in-one installations

This is the easiest solution for Mac OS X 10.4 or Windows users wanting to run Tracks locally.

@@ -44,7 +58,7 @@
  • Windows. Instant Rails includes everything you need, including MySQL.
  • -

    What is included with the Tracks package

    +

    What is included with the Tracks package

    1. Tracks itself
    2. @@ -52,7 +66,7 @@
    3. An empty SQLite3 database, set up with the correct database schema
    -

    What you need to install

    +

    What you need to install

    If you don’t want to (or can’t) use one of the all in one installations, you’ll need to install a few things, depending on your platform and your needs.

    @@ -62,30 +76,32 @@
  • Database. The easiest option is to use SQLite3, as the database is included in the package. All you need then is the sqlite3-ruby gem, as described in step 2, and the SQLite3 libraries and binary (see sqlite.org for downloads and installation instructions). If you want to use MySQL, download and install a package for your platform from MySQL.com. The basic steps for Postgresql should be similar to those for MySQL, but they will not be discussed further here.
  • -

    Installation

    +

    Installation

    + +

    This description is intended for people installing Tracks from scratch. If you would like to upgrade an existing installation, please see Upgrading to Tracks 1.5.

      -
    1. Unzip tracks and install in a directory
    2. -
    3. Decide on a database to use +
    4. Unzip tracks and install in a directory
    5. +
    6. Decide on a database to use
      1. SQLite3 - change database.yml to point to SQLite3 database
      2. -
      3. MySQL - create new MySQL db and grant all privs
    7. -
    8. Configure some variables
    9. -
    10. Populate the database with the Tracks 1.5 schema
    11. -
    12. Start the server
    13. -
    14. Visit Tracks in a browser
    15. -
    16. Customise Tracks
    17. +
    18. MySQL - create new MySQL db and grant all privileges
    +
  • Configure some variables
  • +
  • Populate the database with the Tracks 1.5 schema
  • +
  • Start the server
  • +
  • Visit Tracks in a browser
  • +
  • Customise Tracks
  • -

    Unzip Tracks and install

    +

    Unzip Tracks and install

    Unzip the package and move Tracks into the directory you want to run it from. For example, for Mac OS X users, ~/Sites is a good choice.

    -

    Decide on a database

    +

    Decide on a database

    Before you go any further, you need to decide which database you will use. See the What you need to install section for details on installing the required components for you choice of database.

      -
    1. SQLite3. All you need to do is make sure that you point Tracks to the included SQLite3 database in /db in the next step, Configure variables.
    2. +
    3. SQLite3. All you need to do is make sure that you point Tracks to the included SQLite3 database in /db in the next step, Configure variables.
    4. MySQL. Once you have MySQL installed, you need to create a database to use with Tracks 1.5. Go into a terminal and issue the following commands:
    @@ -98,16 +114,16 @@ -

    Configure variables

    +

    Configure variables

      +
    1. If you downloaded Tracks 1.5 via Subversion, you need to duplicate the files database.yml.tmpl and environment.yml.tmpl and remove the *.tmpl extension from the duplicates. Similarly, duplicate /log.tmpl and remove the *.tmpl extension, then edit the files as described in steps 2 and 3.
    2. Open the file /config/database.yml and edit the production: section with the details of your database. If you are using MySQL the adapter: line should read adapter: mysql, host: localhost (in the majority of cases), and your username and password should match those you assigned when you created the database. If you are using SQLite3, you should have only two lines under the production section: adapter: sqlite3 and database: db/tracks-15.db.
    3. Open the file /config/environment.rb, and read through the settings to make sure that they suit your setup. In most cases, all you need to change is the SALT = "change-me" line (change the string “change-me” to some other string of your choice), and the time zone setting.
    4. -
    5. If you downloaded Tracks 1.5 via Subversion, you need to duplicate the files database.yml.tmpl and environment.yml.tmpl and remove the *.tmpl extension from the duplicates. Similarly, duplicate /log.tmpl and remove the *.tmpl extension, then edit the files as described in steps 1 and 2 above.
    6. If you are using Windows, you may need to check the ‘shebang’ lines (#!/usr/bin/env ruby) of the /public/dispatch.* files and all the files in the /script directory. They are set to #!/usr/bin/env ruby by default. This should work for all *nix based setups (Linux or Mac OS X), but Windows users will probably have to change it to something like #c:/ruby/bin/ruby to point to the Ruby binary on your system.
    -

    Populate your database with the Tracks 1.5 schema

    +

    Populate your database with the Tracks 1.5 schema

    Open a terminal and change into the root of your Tracks 1.5 directory. Enter the following command:

    @@ -115,7 +131,7 @@

    This will update your database with the required schema for Tracks 1.5. If you are using SQLite3, it is not strictly necessary, because the SQLite3 database included with Tracks already has the schema included in it, but it should not do any harm to run the command (nothing will happen if it is up to date).

    -

    Start the server

    +

    Start the server

    While still in the Terminal inside the Tracks 1.5 root directory, issue the following command:

    @@ -123,12 +139,95 @@

    If all goes well, you should see some text informing you that the Mongrel server is running: ** Mongrel available at 0.0.0.0:3000. If you are already running other services on port 3000, you need to select a different port when running the server, using the -p option. You can stop the server again by the key combination Ctrl-C.

    -

    Visit Tracks in a browser

    +

    Visit Tracks in a browser

    Visit http://0.0.0.0:3000/signup in a browser (or whatever URL and port was reported when you started the server in the step above) and chose a user name and password for admin user. Once logged in as admin, you can add other (ordinary level) users.

    -

    Customise Tracks

    +

    Customise Tracks

    Once logged in, add some Contexts and Projects, and then go ahead and add your actions. You might also want to visit the Preferences page to edit various settings to your liking. Have fun!

    + +

    Upgrading to Tracks 1.5

    + +

    TODO: Instructions for upgrading from a version earlier than 1.043

    + +

    Upgrading from Tracks 1.043

    + +

    This should be a relatively straightforward, and involves the following main steps:

    + +
      +
    1. Back up your existing database and installation of Tracks
    2. +
    3. Install Tracks 1.5 in a new directory
    4. +
    5. Copy over a few configuration files from your Tracks 1.043 directory. If using SQLite3, copy the old database into the new Tracks 1.5 directory
    6. +
    7. Run rake db:migrate RAILS_ENV=production to update your old database to the new schema – you did back up your database didn’t you?
    8. +
    9. Run script/server inside your Tracks 1.5 directory to start up Tracks 1.5.
    10. +
    11. Once you are happy that everything is working well, delete your old Tracks directory.
    12. +
    + +

    Backing up

    + +

    It’s very important that you back up your database before you start the upgrade process. It’s always possible for things to go wrong with the database update, and you don’t want to lose any data. If you are using SQLite3 and you are leaving your old Tracks directory in place, then you don’t need to do anything. However, there is no harm in taking extra precautions and copying your database from /db to a safe location as an extra backup, or making a dump of the schema and contents. You will never regret making too many backups! If you are using MySQL, make a SQL dump of your database, replacing the terms in square brackets with the correct information for your setup:

    + +

    mysqldump –-user [user name] –-password=[password] [database name] > [dump file]

    + +

    Rename your old Tracks installation (e.g. to ‘tracks-old’) so that you can install Tracks 1.5 along side it.

    + +

    Install Tracks 1.5

    + +

    There are two methods of downloading Tracks 1.5:

    + +
      +
    1. (Recommended for most people) Download the zipped package, and unzip in your preferred location (e.g. ~/Sites for Mac OS X users).
    2. +
    3. Download using Subversion:
    4. +
    + +
    +
    +    svn co --username=guest \ 
    +    http://www.rousette.org.uk/svn/tracks-repos/tags/current tracks
    +
    +
    + +

    Copy over old configuration files

    + +

    There are a few files you need to copy over from your old installation. If you copy them over rather than moving them, you can still run your old version of Tracks if anything goes awry with the installation process.

    + +
      +
    1. Copy /config/database.yml from your old Tracks directory to the same location in the new one. Double check that the information there is still correct.
    2. +
    3. Duplicate /config/environment.rb.tmpl in the Tracks 1.5 directory, and rename the file to environment.rb. Open the file and alter the line SALT = "change-me" so that it matches what you had in this file in your old installation. You may also want to change the time zone setting as appropriate for your location (ENV['TZ'] = 'US/Eastern'). If you have made any other customisations to environment.rb in the past, copy those over, but the contents of the file have changed quite a lot since 1.043, so check it carefully.
    4. +
    5. Copy your /log directory over from your old installation to the root of the new one, or just rename /log.tmpl to log to start afresh.
    6. +
    7. If you are using SQLite3, copy your database from /db in your old Tracks directory to the same location in the new one.
    8. +
    9. If you are using Windows, you may need to check the ‘shebang’ lines (#!/usr/bin/env ruby)1 of the /public/dispatch.* files and all the files in the /script directory. They are set to #!/usr/bin/env ruby by default. Check the format of those lines in your old installation, and change the new ones as necessary.
    10. +
    + +

    Update your old database to the new format

    + +

    In a terminal, change directories so that you are inside the Tracks 1.5 directory. Then issue the command:

    + +

    rake db:migrate RAILS_ENV=production

    + +

    Watch the output carefully for errors, but it should report at the end of the process that everything worked OK. If you do get errors, you’ll have to fix them before you proceed any further. Running rake with the --trace option can help to track down the problem.

    + +

    Start the server

    + +

    If you’re still in the Tracks 1.5 root directory in a terminal, enter the following command to start up Tracks in production mode:

    + +

    script/server -e production

    + +

    Visit the URL indicated by the output (e.g. ** Mongrel available at 0.0.0.0:3000 +) in a browser, and with any luck, you should be able to log in and find all your actions as you left them!

    + +

    Clean up your old installation

    + +

    Once you’re certain that your new Tracks 1.5 installation is working perfectly, you can delete your old Tracks directory.

    + +
    +
    +
      + +
    1. The env binary helps to locate other binaries, regardless of their location. If you don’t have env installed, you’ll need to change this line to point to the location of your Ruby binary. ↩

    2. + +
    +
    \ No newline at end of file diff --git a/tracks/doc/manual.pdf b/tracks/doc/manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..61c2b834b20b82c0f5c5017a2c03a996921be8b2 GIT binary patch literal 118821 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 -1 + \if@mainmatter + \chaptername\ \thechapter\ --- % + \fi + \fi + ##1}{}} + \def\sectionmark##1{\markright{% + \ifnum \value{secnumdepth} > 0 + \thesection. \ % + \fi + ##1}} +} +\makeatother + +\makerunningwidth{myruledpagestyle}{1.1\textwidth} +\makeheadposition{myruledpagestyle}{flushright}{flushleft}{flushright}{flushleft} +\makeheadrule{myruledpagestyle}{1.1\textwidth}{\normalrulethickness} + +\makeglossary +\makeindex + +\def\mychapterstyle{BlueBox} +\def\mypagestyle{myruledpagestyle} +\def\revision{} +%%% need more space for ToC page numbers +\setpnumwidth{2.55em} +\setrmarg{3.55em} + +%%% need more space for ToC section numbers +\cftsetindents{part}{0em}{3em} +\cftsetindents{chapter}{0em}{3em} +\cftsetindents{section}{3em}{3em} +\cftsetindents{subsection}{4.5em}{3.9em} +\cftsetindents{subsubsection}{8.4em}{4.8em} +\cftsetindents{paragraph}{10.7em}{5.7em} +\cftsetindents{subparagraph}{12.7em}{6.7em} + +%%% need more space for LoF numbers +\cftsetindents{figure}{0em}{3.0em} + +%%% and do the same for the LoT +\cftsetindents{table}{0em}{3.0em} + +%%% set up the page layout +\settrimmedsize{\stockheight}{\stockwidth}{*} % Use entire page +\settrims{0pt}{0pt} + +\setlrmarginsandblock{1.5in}{1.5in}{*} +\setulmarginsandblock{1.5in}{1.5in}{*} + +\setmarginnotes{17pt}{51pt}{\onelineskip} +\setheadfoot{\onelineskip}{2\onelineskip} +\setheaderspaces{*}{2\onelineskip}{*} +\checkandfixthelayout + +\usepackage{fancyvrb} % Allow \verbatim et al. in footnotes +\usepackage{graphicx} % To include graphics in pdf's (jpg, gif, png, etc) +\usepackage{booktabs} % Better tables +\usepackage{tabulary} % Support longer table cells +\usepackage[utf8]{inputenc} % For UTF-8 support +\usepackage{xcolor} % Allow for color (annotations) + +%\geometry{landscape} % Activate for rotated page geometry + +\usepackage[parfill]{parskip} % Activate to begin paragraphs with an empty + % line rather than an indent + + +\def\myauthor{Author} % In case these were not included in metadata +\def\mytitle{Title} +\def\mykeywords{} +\def\mybibliostyle{plain} +\def\bibliocommand{} + +\VerbatimFootnotes +\def\myauthor{Tracks Development Team} +\def\baseheaderlevel{2} +\def\mycopyright{2007 rousette.org.uk \\ This work is licensed under a Creative Commons License. \\ http://creativecommons.org/licenses/by-nc-sa/3.0/} +\date{2007-11-25} +\def\format{complete} +\def\latexxslt{memoir-twosided-manual.xslt} +\def\revision{Revision: \$Id: manual.markdown 654 2007-11-25 16:19:05Z bsag \$} +\def\mytitle{Tracks 1.5 Manual} +\def\version{1.5} +\usepackage{xmpincl} +\includexmp{CCAttributionShareAlike} + + +% +% PDF Stuff +% + +%\ifpdf % Removed for XeLaTeX compatibility +% \pdfoutput=1 % Removed for XeLaTeX compatibility +\usepackage[ + plainpages=false, + pdfpagelabels, + pdftitle={\mytitle}, + pagebackref, + pdfauthor={\myauthor}, + pdfkeywords={\mykeywords}, + colorlinks=true, + urlcolor=blue, + linkcolor=red + ]{hyperref} + \usepackage{memhfixc} +%\fi % Removed for XeLaTeX compatibility + + +% +% Title Information +% + +\ifx\subtitle\undefined +\else + \addtodef{\mytitle}{}{ \\ \subtitle} +\fi + +\ifx\affiliation\undefined +\else + \addtodef{\myauthor}{}{ \\ \affiliation} +\fi + +\ifx\address\undefined +\else + \addtodef{\myauthor}{}{ \\ \address} +\fi + +\ifx\phone\undefined +\else + \addtodef{\myauthor}{}{ \\ \phone} +\fi + +\ifx\email\undefined +\else + \addtodef{\myauthor}{}{ \\ \email} +\fi + +\ifx\web\undefined + \else + \addtodef{\myauthor}{}{ \\ \web} +\fi + +\title{\mytitle} +\author{\myauthor} + +\maxsecnumdepth{subsection} +\setsecnumdepth{subsection} + +\begin{document} + +\chapterstyle{\mychapterstyle} +\pagestyle{\mypagestyle} + +% +% Front Matter +% + +\frontmatter + + +% Title Page + +\maketitle +\clearpage + +% Copyright Page +\vspace*{\fill} + +\setlength{\parindent}{0pt} + +\ifx\mycopyright\undefined +\else + \textcopyright{} \mycopyright +\fi + +\revision + +\begin{center} +\framebox{ \parbox[t]{1.5in}{\centering Formatted for \LaTeX \\ + by MultiMarkdown}} +\end{center} + +\setlength{\parindent}{1em} +\clearpage + +% Table of Contents +\tableofcontents +%\listoffigures % activate to include a List of Figures +%\listoftables % activate to include a List of Tables + + +% +% Main Content +% + + +% Layout settings +\setlength{\parindent}{0pt} +\setlength{\parskip}{\baselineskip/2} + +\mainmatter +\chapter{Installing Tracks 1.5} +\label{installingtracks1.5} + +\section{Introduction} +\label{introduction} + +Tracks 1.5 has been thoroughly beta tested by a large number of people, and should be fully stable for everyday use. However, once set up, Tracks will contain the majority of your plans for your work and personal life, so it's only sensible to make sure that you have frequent, reliable backups of your data. Full changenotes on the release can be found in \texttt{doc/CHANGELOG}. Full API documentation can be found at \texttt{doc/app/index.html}, once you have run \texttt{rake appdoc} + + +There are two methods of downloading Tracks 1.5: + + +\begin{enumerate} + + +\item (Recommended for most people) Download the \href{http://www.rousette.org.uk/projects/files/tracks-current.zip}{zipped package}, and unzip in your preferred location (e.g.\ \texttt{\ensuremath{\sim}/Sites} for Mac OS X users). + +\item Download using Subversion: +\end{enumerate} + +\begin{adjustwidth}{2.5em}{2.5em} +\begin{verbatim} + + + svn co --username=guest + http://www.rousette.org.uk/svn/tracks-repos/tags/current tracks + + +\end{verbatim} +\end{adjustwidth} + +\section{Requirements} +\label{requirements} + +The Tracks interface is accessed through a web browser, so you need to run a webserver to serve the Tracks pages up to you. This isn't as daunting as it sounds, however: Tracks ships with a built-in web server called Mongrel which you can run on your own computer to serve the Tracks application locally. If you want to be able to access Tracks from any computer connected to the Internet, then you need to install Tracks on a publicly accessible server, and you will probably be better off using a more robust server such as \href{http://www.apache.org/}{Apache} or \href{http://www.lighttpd.net/}{Lighttpd} to serve the pages, particularly if it will be used by many people. + + +Tracks stores its data in a database, and you can either use SQLite3, MySQL or PostgreSQL. SQLite3 is the best choice for a single user (or a small number of users) on a local installation, while MySQL or PostgreSQL is better for multiple users on a remote installation. + + +\subsection{All-in-one installations} +\label{all-in-oneinstallations} + +This is the easiest solution for Mac OS X 10.4 or Windows users wanting to run Tracks locally. + + +\begin{enumerate} + + +\item \textbf{Mac OS X}. \href{http://locomotive.sourceforge.net/}{Locomotive} is an all-in one installer for Mac OS X 10.4, which includes everything you need to run Tracks with a SQLite3 database. Locomotive isn't currently Leopard compatible, and doesn't work with Panther. + +\item \textbf{Windows}. \href{http://instantrails.rubyforge.org/wiki/wiki.pl}{Instant Rails} includes everything you need, including MySQL. +\end{enumerate} + +\subsection{What is included with the Tracks package} +\label{whatisincludedwiththetrackspackage} + +\begin{enumerate} + + +\item Tracks itself + +\item Rails 1.2.5 (installed in the \texttt{/vendor/rails} directory, so you do not need to install Rails yourself) + +\item An empty SQLite3 database, set up with the correct database schema +\end{enumerate} + +\subsection{What you need to install} +\label{whatyouneed} + +If you don't want to (or can't) use one of the all in one installations, you'll need to install a few things, depending on your platform and your needs. + + +\begin{enumerate} + + +\item \textbf{Ruby}. Version 1.8.6 is recommended, but it is also possible to use 1.8.5, 1.8.4 and 1.8.2. Note that 1.8.3 is not compatible. If you are running Mac OS X Leopard, you already have Ruby 1.8.6 installed by default, so you have nothing to do here. You can get the source to compile yourself \href{http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz}{here} for all platforms, or Windows users can use an easy \href{http://rubyforge.org/frs/?group_id=167}{installer}. If you're using a version of Mac OS X earlier than 10.5.0, it is recommended that you use the \href{http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx}{instructions here} to install all the Rails dependencies, though you can skip the step to install Rails if you like. + +\item \textbf{RubyGems}. The gems needed by Rails to interact with the database have to be compiled on the platform on which they will be run, so we cannot include them with the Tracks package, unlike some other gems. So you will need to \href{http://rubyforge.org/frs/?group_id=126}{download} and install RubyGems (run \texttt{ruby setup.rb} after extracting the package). Note that once again, Mac OS X Leopard users get an easy life, because RubyGems and the SQLite3 gem is already installed. Once installed you can use RubyGems to install the gems you need for your database. If you are using SQLite3, run \texttt{sudo gem install sqlite3-ruby}, then select the appropriate package for your platform (version 1.2.1 recommended). You can use MySQL without installing a gem, but installing the gem can speed things up a bit: \texttt{sudo install gem mysql}. If you're using Leopard, there are a few work-arounds necessary, which are explained on \href{http://trac.macosforge.org/projects/ruby/wiki/Troubleshooting#IcannotbuildrubymysqlonLeopardwithmysql.combinaries}{Mac OS Forge}. The ruby-mysql bindings can sometimes be a bit troublesome to install, so to be honest, it's probably not worth the bother unless you are trying to wring maximum speed out of your system. If you are using PostgreSQL, then you can install a postgres gem: \texttt{gem install postgres}. + +\item \textbf{Database}. The easiest option is to use SQLite3, as the database is included in the package. All you need then is the \texttt{sqlite3-ruby} gem, as described in step 2, and the SQLite3 libraries and binary (see \href{http://sqlite.org/download.html}{sqlite.org} for downloads and installation instructions). If you want to use MySQL, download and install a package for your platform from \href{http://dev.mysql.com/downloads/mysql/5.0.html}{MySQL.com}. The basic steps for Postgresql should be similar to those for MySQL, but they will not be discussed further here. +\end{enumerate} + +\section{Installation} +\label{installation} + +This description is intended for people installing Tracks from scratch. If you would like to upgrade an existing installation, please see Upgrading to Tracks 1.5 (\autoref{upgrading}). + + +\begin{enumerate} + + +\item Unzip tracks (\autoref{unzip_install}) and install in a directory + +\item Decide on a database (\autoref{database_install}) to use +\begin{enumerate} + + +\item SQLite3 - change database.yml to point to SQLite3 database + +\item MySQL - create new MySQL db and grant all privileges +\end{enumerate} + + + +\item Configure some variables (\autoref{config_install}) + +\item Populate the database with the Tracks 1.5 schema (\autoref{rake_install}) + +\item Start the server (\autoref{startserver_install}) + +\item Visit Tracks in a browser (\autoref{signup_install}) + +\item Customise Tracks (\autoref{customise_install}) +\end{enumerate} + +\subsection{Unzip Tracks and install} +\label{unzip_install} + +Unzip the package and move Tracks into the directory you want to run it from. For example, for Mac OS X users, \texttt{\ensuremath{\sim}/Sites} is a good choice. + + +\subsection{Decide on a database} +\label{database_install} + +Before you go any further, you need to decide which database you will use. See the What you need to install (\autoref{whatyouneed}) section for details on installing the required components for you choice of database. + + +\begin{enumerate} + + +\item \textbf{SQLite3}. All you need to do is make sure that you point Tracks to the included SQLite3 database in \texttt{/db} in the next step, Configure variables (\autoref{config_install}). + +\item \textbf{MySQL}. Once you have MySQL installed, you need to create a database to use with Tracks 1.5. Go into a terminal and issue the following commands: +\end{enumerate} + +\begin{adjustwidth}{2.5em}{2.5em} +\begin{verbatim} + + + mysql -uroot -p + mysql> CREATE DATABASE tracks15; + mysql> GRANT ALL PRIVILEGES ON tracks15.* TO yourmysqluser@localhost \ + IDENTIFIED BY 'password-goes-here' WITH GRANT OPTION; + + +\end{verbatim} +\end{adjustwidth} + +\subsection{Configure variables} +\label{config_install} + +\begin{enumerate} + + +\item If you downloaded Tracks 1.5 via Subversion, you need to duplicate the files \texttt{database.yml.tmpl} and \texttt{environment.yml.tmpl} and remove the \texttt{*.tmpl} extension from the duplicates. Similarly, duplicate \texttt{/log.tmpl} and remove the \texttt{*.tmpl} extension, then edit the files as described in steps 2 and 3. + +\item Open the file \texttt{/config/database.yml} and edit the \texttt{production:} section with the details of your database. If you are using MySQL the \texttt{adapter:} line should read \texttt{adapter: mysql}, \texttt{host: localhost} (in the majority of cases), and your username and password should match those you assigned when you created the database. If you are using SQLite3, you should have only two lines under the production section: \texttt{adapter: sqlite3} and \texttt{database: db/tracks-15.db}. + +\item Open the file \texttt{/config/environment.rb}, and read through the settings to make sure that they suit your setup. In most cases, all you need to change is the \texttt{SALT = "change-me"} line (change the string ``change-me" to some other string of your choice), and the time zone setting. + +\item If you are using Windows, you may need to check the `shebang' lines (\texttt{\#!/usr/bin/env ruby}) of the \texttt{/public/dispatch.*} files and all the files in the \texttt{/script} directory. They are set to \texttt{\#!/usr/bin/env ruby} by default. This should work for all *nix based setups (Linux or Mac OS X), but Windows users will probably have to change it to something like \texttt{\#c:/ruby/bin/ruby} to point to the Ruby binary on your system. +\end{enumerate} + +\subsection{Populate your database with the Tracks 1.5 schema} +\label{rake_install} + +Open a terminal and change into the root of your Tracks 1.5 directory. Enter the following command: + + +\texttt{rake db:migrate RAILS\_ENV=production} + + +This will update your database with the required schema for Tracks 1.5. If you are using SQLite3, it is not strictly necessary, because the SQLite3 database included with Tracks already has the schema included in it, but it should not do any harm to run the command (nothing will happen if it is up to date). + + +\subsection{Start the server} +\label{startserver_install} + +While still in the Terminal inside the Tracks 1.5 root directory, issue the following command: + + +\texttt{script/server -e production} + + +If all goes well, you should see some text informing you that the Mongrel server is running: \texttt{** Mongrel available at 0.0.0.0:3000}. If you are already running other services on port 3000, you need to select a different port when running the server, using the \texttt{-p} option. You can stop the server again by the key combination Ctrl-C. + + +\subsection{Visit Tracks in a browser} +\label{signup_install} + +Visit \texttt{http://0.0.0.0:3000/signup} in a browser (or whatever URL and port was reported when you started the server in the step above) and chose a user name and password for admin user. Once logged in as admin, you can add other (ordinary level) users. + + +\subsection{Customise Tracks} +\label{customise_install} + +Once logged in, add some Contexts and Projects, and then go ahead and add your actions. You might also want to visit the Preferences page to edit various settings to your liking. Have fun! + + +\chapter{Upgrading to Tracks 1.5} +\label{upgrading} + +\textbf{TODO: Instructions for upgrading from a version earlier than 1.043} + + +\section{Upgrading from Tracks 1.043} +\label{upgradingfromtracks1.043} + +This should be a relatively straightforward, and involves the following main steps: + + +\begin{enumerate} + + +\item Back up (\autoref{backup_upgrade}) your existing database and installation of Tracks + +\item Install Tracks 1.5 (\autoref{install_upgrade}) in a new directory + +\item Copy over (\autoref{config_upgrade}) a few configuration files from your Tracks 1.043 directory. If using SQLite3, copy the old database into the new Tracks 1.5 directory + +\item Run \texttt{rake db:migrate RAILS\_ENV=production} to update your old database (\autoref{rake_upgrade}) to the new schema -- you did back up your database didn't you? + +\item Run \texttt{script/server} inside your Tracks 1.5 directory to start up Tracks 1.5 (\autoref{startserver_upgrade}). + +\item Once you are happy that everything is working well, delete your old Tracks directory (\autoref{cleanup_upgrade}). +\end{enumerate} + +\subsection{Backing up} +\label{backup_upgrade} + +It's very important that you \textbf{back up your database} before you start the upgrade process. It's always possible for things to go wrong with the database update, and you don't want to lose any data. If you are using SQLite3 and you are leaving your old Tracks directory in place, then you don't need to do anything. However, there is no harm in taking extra precautions and copying your database from \texttt{/db} to a safe location as an extra backup, or making a dump of the schema and contents. You will never regret making too many backups! If you are using MySQL, make a SQL dump of your database, replacing the terms in square brackets with the correct information for your setup: + + +\texttt{mysqldump ---user [user name] ---password=[password] [database name] $>$ [dump file]} + + +Rename your old Tracks installation (e.g.\ to `tracks-old') so that you can install Tracks 1.5 along side it. + + +\subsection{Install Tracks 1.5} +\label{install_upgrade} + +There are two methods of downloading Tracks 1.5: + + +\begin{enumerate} + + +\item (Recommended for most people) Download the \href{http://www.rousette.org.uk/projects/files/tracks-current.zip}{zipped package}, and unzip in your preferred location (e.g.\ \texttt{\ensuremath{\sim}/Sites} for Mac OS X users). + +\item Download using Subversion: +\end{enumerate} + +\begin{adjustwidth}{2.5em}{2.5em} +\begin{verbatim} + + + svn co --username=guest \ + http://www.rousette.org.uk/svn/tracks-repos/tags/current tracks + + +\end{verbatim} +\end{adjustwidth} + +\subsection{Copy over old configuration files} +\label{config_upgrade} + +There are a few files you need to copy over from your old installation. If you copy them over rather than moving them, you can still run your old version of Tracks if anything goes awry with the installation process. + + +\begin{enumerate} + + +\item Copy \texttt{/config/database.yml} from your old Tracks directory to the same location in the new one. Double check that the information there is still correct. + +\item Duplicate \texttt{/config/environment.rb.tmpl} in the Tracks 1.5 directory, and rename the file to \texttt{environment.rb}. Open the file and alter the line \texttt{SALT = "change-me"} so that it matches what you had in this file in your old installation. You may also want to change the time zone setting as appropriate for your location (\texttt{ENV['TZ'] = 'US/Eastern'}). If you have made any other customisations to \texttt{environment.rb} in the past, copy those over, but the contents of the file have changed quite a lot since 1.043, so check it carefully. + +\item Copy your \texttt{/log} directory over from your old installation to the root of the new one, or just rename \texttt{/log.tmpl} to \texttt{log} to start afresh. + +\item If you are using SQLite3, copy your database from \texttt{/db} in your old Tracks directory to the same location in the new one. + +\item If you are using Windows, you may need to check the `shebang' lines (\texttt{\#!/usr/bin/env ruby})\footnote{The \texttt{env} binary helps to locate other binaries, regardless of their location. If you don't have \texttt{env} installed, you'll need to change this line to point to the location of your Ruby binary.} of the \texttt{/public/dispatch.*} files and all the files in the \texttt{/script} directory. They are set to \texttt{\#!/usr/bin/env ruby} by default. Check the format of those lines in your old installation, and change the new ones as necessary. +\end{enumerate} + +\subsection{Update your old database to the new format} +\label{rake_upgrade} + +In a terminal, change directories so that you are inside the Tracks 1.5 directory. Then issue the command: + + +\texttt{rake db:migrate RAILS\_ENV=production} + + +Watch the output carefully for errors, but it should report at the end of the process that everything worked OK. If you do get errors, you'll have to fix them before you proceed any further. Running rake with the \texttt{--trace} option can help to track down the problem. + + +\subsection{Start the server} +\label{startserver_upgrade} + +If you're still in the Tracks 1.5 root directory in a terminal, enter the following command to start up Tracks in production mode: + + +\texttt{script/server -e production} + + +Visit the URL indicated by the output (e.g.\ \texttt{** Mongrel available at 0.0.0.0:3000} +) in a browser, and with any luck, you should be able to log in and find all your actions as you left them! + + +\subsection{Clean up your old installation} +\label{cleanup_upgrade} + +Once you're certain that your new Tracks 1.5 installation is working perfectly, you can delete your old Tracks directory. + + +% +% Back Matter +% + +\backmatter +%\appendixpage + +% Bibliography +\bibliographystyle{\mybibliostyle} +\bibliocommand + +% Glossary +\printglossary + + +% Index +\printindex + +\end{document} diff --git a/tracks/doc/upgrading.html b/tracks/doc/upgrading.html deleted file mode 100644 index 0c05fe5c..00000000 --- a/tracks/doc/upgrading.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - Upgrading to Tracks 1.5 - - - - - -

    Upgrading to Tracks 1.5

    - -

    NB: THIS IS A WORK IN PROGRESS - LINKS AND SVN URLS MENTIONED MAY NOT BE ACTIVE YET.

    - -

    TODO: Instructions for upgrading from a version earlier than 1.043

    - -

    Upgrading from Tracks 1.043

    - -

    This should be a relatively straightforward, and involves the following main steps:

    - -
    - -

    Backing up

    - -

    It’s very important that you back up your database before you start the upgrade process. It’s always possible for things to go wrong with the database update, and you don’t want to lose any data. If you are using SQLite3 and you are leaving your old Tracks directory in place, then you don’t need to do anything. However, there is no harm in taking extra precautions and copying your database from /db to a safe location as an extra backup, or making a dump of the schema and contents. You will never regret making too many backups! If you are using MySQL, make a SQL dump of your database, replacing the terms in square brackets with the correct information for your setup:

    - -

    mysqldump –-user [user name] –-password=[password] [database name] > [dump file]

    - -

    Rename your old Tracks installation (e.g. to ‘tracks-old’) so that you can install Tracks 1.5 along side it.

    - -

    Install Tracks 1.5

    - -

    There are two methods of downloading Tracks 1.5:

    - -
      -
    1. (Recommended for most people) Download the zipped package, and unzip in your preferred location (e.g. ~/Sites for Mac OS X users).
    2. -
    3. Download using Subversion: -svn co --username=guest http://www.rousette.org.uk/svn/tracks-repos/tags/current tracks
    4. -
    - -

    Copy over old configuration files

    - -

    There are a few files you need to copy over from your old installation. If you copy them over rather than moving them, you can still run your old version of Tracks if anything goes awry with the installation process.

    - -
      -
    1. Copy /config/database.yml from your old Tracks directory to the same location in the new one. Double check that the information there is still correct.
    2. -
    3. Duplicate /config/environment.rb.tmpl in the Tracks 1.5 directory, and rename the file to environment.rb. Open the file and alter the line SALT = "change-me" so that it matches what you had in this file in your old installation. You may also want to change the time zone setting as appropriate for your location (ENV['TZ'] = 'US/Eastern'). If you have made any other customisations to environment.rb in the past, copy those over, but the contents of the file have changed quite a lot since 1.043, so check it carefully.
    4. -
    5. Copy your /log directory over from your old installation to the root of the new one, or just rename /log.tmpl to log to start afresh.
    6. -
    7. If you are using SQLite3, copy your database from /db in your old Tracks directory to the same location in the new one.
    8. -
    9. If you are using Windows, you may need to check that the ‘shebang’ lines (#!/usr/bin/env ruby)1 in many of the files in /script directory are correct for your environment. Check the format of those lines in your old installation, and change the new ones as necessary.
    10. -
    - -

    Update your old database to the new format

    - -

    In a terminal, change directories so that you are inside the Tracks 1.5 directory. Then issue the command:

    - -

    rake db:migrate RAILS_ENV=production

    - -

    Watch the output carefully for errors, but it should report at the end of the process that everything worked OK. If you do get errors, you’ll have to fix them before you proceed any further. Running rake with the --trace option can help to track down the problem.

    - -

    Start the server

    - -

    If you’re still in the Tracks 1.5 root directory in a terminal, enter the following command to start up Tracks in production mode:

    - -

    script/server -e production

    - -

    Visit the URL indicated by the output (e.g. ** Mongrel available at 0.0.0.0:3000 -) in a browser, and with any luck, you should be able to log in and find all your actions as you left them!

    - -

    Clean up your old installation

    - -

    Once you’re certain that your new Tracks 1.5 installation is working perfectly, you can delete your old Tracks directory.

    - -
    -
    -
      - -
    1. The env binary helps to locate other binaries, regardless of their location. If you don’t have env installed, you’ll need to change this line to point to the location of your Ruby binary. ↩

    2. - -
    -
    - - \ No newline at end of file diff --git a/tracks/doc/upgrading.markdown b/tracks/doc/upgrading.markdown deleted file mode 100644 index 73142a79..00000000 --- a/tracks/doc/upgrading.markdown +++ /dev/null @@ -1,73 +0,0 @@ -Title: Upgrading to Tracks 1.5 -Author: Tracks Development Team -Date: 2007-11-17 -Format: Complete -CSS: manual.css - - - -# Upgrading to Tracks 1.5 # - -**NB: THIS IS A WORK IN PROGRESS - LINKS AND SVN URLS MENTIONED MAY NOT BE ACTIVE YET.** - -**TODO: Instructions for upgrading from a version earlier than 1.043** - -## Upgrading from Tracks 1.043 ## - -This should be a relatively straightforward, and involves the following main steps: - -1. [Back up][backup] your existing database and installation of Tracks -2. [Install Tracks 1.5][install1.5] in a new directory -3. [Copy over][config] a few configuration files from your Tracks 1.043 directory. If using SQLite3, copy the old database into the new Tracks 1.5 directory -5. Run `rake db:migrate RAILS_ENV=production` to [update your old database][rake] to the new schema -- you did back up your database didn't you? -6. Run `script/server` inside your Tracks 1.5 directory to [start up Tracks 1.5][startserver]. -7. Once you are happy that everything is working well, [delete your old Tracks directory][cleanup]. - -### Backing up [backup] ### - -It's very important that you **back up your database** before you start the upgrade process. It's always possible for things to go wrong with the database update, and you don't want to lose any data. If you are using SQLite3 and you are leaving your old Tracks directory in place, then you don't need to do anything. However, there is no harm in taking extra precautions and copying your database from `/db` to a safe location as an extra backup, or making a dump of the schema and contents. You will never regret making too many backups! If you are using MySQL, make a SQL dump of your database, replacing the terms in square brackets with the correct information for your setup: - -`mysqldump –-user [user name] –-password=[password] [database name] > [dump file]` - -Rename your old Tracks installation (e.g. to 'tracks-old') so that you can install Tracks 1.5 along side it. - -### Install Tracks 1.5 [install1.5] ### - -There are two methods of downloading Tracks 1.5: - -1. (Recommended for most people) Download the [zipped package](http://www.rousette.org.uk/projects/files/tracks-current.zip), and unzip in your preferred location (e.g. `~/Sites` for Mac OS X users). -2. Download using Subversion: -`svn co --username=guest http://www.rousette.org.uk/svn/tracks-repos/tags/current tracks` - -### Copy over old configuration files [config] ### - -There are a few files you need to copy over from your old installation. If you copy them over rather than moving them, you can still run your old version of Tracks if anything goes awry with the installation process. - -1. Copy `/config/database.yml` from your old Tracks directory to the same location in the new one. Double check that the information there is still correct. -2. Duplicate `/config/environment.rb.tmpl` in the Tracks 1.5 directory, and rename the file to `environment.rb`. Open the file and alter the line `SALT = "change-me"` so that it matches what you had in this file in your old installation. You may also want to change the time zone setting as appropriate for your location (`ENV['TZ'] = 'US/Eastern'`). If you have made any other customisations to `environment.rb` in the past, copy those over, but the contents of the file have changed quite a lot since 1.043, so check it carefully. -3. Copy your `/log` directory over from your old installation to the root of the new one, or just rename `/log.tmpl` to `log` to start afresh. -4. If you are using SQLite3, copy your database from `/db` in your old Tracks directory to the same location in the new one. -5. If you are using Windows, you may need to check the 'shebang' lines (`#!/usr/bin/env ruby`)[^env] of the `/public/dispatch.*` files and all the files in the `/script` directory. They are set to `#!/usr/bin/env ruby` by default. Check the format of those lines in your old installation, and change the new ones as necessary. - -### Update your old database to the new format [rake] ### - -In a terminal, change directories so that you are inside the Tracks 1.5 directory. Then issue the command: - -`rake db:migrate RAILS_ENV=production` - -Watch the output carefully for errors, but it should report at the end of the process that everything worked OK. If you do get errors, you'll have to fix them before you proceed any further. Running rake with the `--trace` option can help to track down the problem. - -### Start the server [startserver] ### - -If you're still in the Tracks 1.5 root directory in a terminal, enter the following command to start up Tracks in production mode: - -`script/server -e production` - -Visit the URL indicated by the output (e.g. `** Mongrel available at 0.0.0.0:3000` -) in a browser, and with any luck, you should be able to log in and find all your actions as you left them! - -### Clean up your old installation [cleanup] ### - -Once you're certain that your new Tracks 1.5 installation is working perfectly, you can delete your old Tracks directory. - -[^env]: The `env` binary helps to locate other binaries, regardless of their location. If you don't have `env` installed, you'll need to change this line to point to the location of your Ruby binary. \ No newline at end of file
      -
    1. Back up your existing database and installation of Tracks
    2. -
    3. Install Tracks 1.5 in a new directory
    4. -
    5. Copy over a few configuration files from your Tracks 1.043 directory. If using SQLite3, copy the old database into the new Tracks 1.5 directory
    6. -
    7. Run rake db:migrate RAILS_ENV=production to update your old database to the new schema – you did back up your database didn’t you?
    8. -
    9. Run script/server inside your Tracks 1.5 directory to start up Tracks 1.5.
    10. -
    11. Once you are happy that everything is working well, delete your old Tracks directory.
    12. -