1.9 Google Summer of Code release
What's New
- Maps and map-based searching
- All required libaries are now included
- Users can now save bookmarks to searches and reports
- Added support for i18n
- Added support for multi-home installations
- Bug fixes!
Full information is available in the Issue Tracker
https://github.com/City-of-Bloomington/uReport/issues?milestone=4&page=1&state=closed
Upgrading to 1.9
Backup
Backup your database, configuration file, and data directory. Just in case things go horribly wrong, you can replace the old version. I usually do this by dumping the database into an SQL file inside of /crm/data, then tarballing the data directory and putting the tarball somewhere safe.
It looks something like this:
cd /srv/sites/uReport/crm/data
mysqldump -p --opt crm > crm.sql
cd ..
tar czvf data.tar.gz data
mv data.tar.gz /srv/backups
Download
The easiest option is to download the source code from this latest release. The links to the zipped source code are down at the bottom of this page.
One of the major differences in this release is that all required libraries are now included in the download. It used to be that you had to download them yourself, and set them up. If you've already got them downloaded, you can probably continue to use the versions you've got working.
If you choose to do a clone from Github (to grab the latest bleeding edge copy), the libraries are in the repository as submodules. You'll need to initialize and update the submodules in order to download the libraries to your working copy.
Replace
Replace your existing install with the new version. Save your data directory, and your configuration.inc, but everything else should be deleted and replaced with the new version.
Redo your configuration
There are a few changes you'll need to make to your configuration.inc.
To start off with, since the libraries are now included in the download, you may want to point to the copies that are included in the application. (Also, you may not want to, it's just up to you).
Aside from the library changes, there is also a new setting needed in configuration.inc. If you look in the new configuration.inc.default, down towards the bottom is the new stuff.
define('LOCALE', 'auto');
Also, in the bootstrap section, there's a few new lines of code that check for an environment variable. If you are just modifying your existing configuration.inc, I would copy and paste the entire bootstrap section from configuration.inc.default, replacing the old version you have in your own configuration.inc.
Alternatively, you could also just start a new copy of configuration.inc from the default, and then, go in and apply all the settings needed from your old configuration.inc.
Run all the migration scripts
All of the required upgrade scripts are in /scripts/migration/1.8.1-1.9
- Apply the SQL changes contained in databaseChanges.sql.
- Run generateTicketClusters.php
- Copy the new schema.xml to your Solr core configuration directory.
- Remember that you'll need to restart Solr (Tomcat) after changing the schema.xml
- Re-index the Solr search engine
databaseChanges.sql
This should be quick and easy. You can either copy and paste the SQL commans into a MySQL shell...or just send the SQL file directly to MySQL on the command line:
mysql -p crm < databaseChanges.sql
generateTicketClusters
This may take a while, depending on how many tickets you have, and how fast your system is. For us, in Bloomington, with ~100,000 tickets, it takes about 45 minutes. You can kick this script off in a terminal window, and do other stuff while waiting for it to finish. Just keep in mind, you cannot re-index the search engine until after this script finishes. The whole point is to put the new cluster data into the search index.
schema.xml
The new mapping clusters require special, spatial fields in Solr. You'll need to copy the new schema into place, and restart Solr. Don't worry too much about the current search index data. It's going to get wiped and re-indexed.
Re-index the Solr search engine
Run the indexSearch.php script. This will wipe the existing search index and re-index everything, picking up the new mapping clusters that we've created.
This could take a while as well, but not as long as generateTicketClusters. For us, in Bloomington, with ~100,000 tickets the search indexing takes about 15 minutes.
That's it
You should be up and running on the new version now. Enjoy. And let us if you run into trouble.