This enhances the web installer so that messages from updatedatabase.pl will
be displayed to the user running a database update. Messages printed to STDOUT
will be displayed as the update report, while messages printed to STDERR will
be displayed as update errors.
This patch introduces a new module dependency, IPC::Cmd.
IPC::Cmd lets one run an external program such as updatedatabase.pl and easily
capture STDERR and STDOUT for further munging. IPC::Cmd is core in Perl 5.10
and stable in Perl 5.8.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Created a new module, C4::Installer, which embodies
most of the code from installer/install.pl that handles
identifying and loading SQL scripts and setting the
Version, marcflavour, FrameworksLoad, and NoZebra
system preferences.
With C4::Installer, it is now easier to automate
initializing and populating a Koha database. This will
help allow the test suite to set up a test database
in order to run DB-dependent tests, as well as write
a command-line installer which may be of use to hosts
that need to support multiple Koha databases.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
TODO: make more sophisticated by checking for
frameworks/sample data that have been translated
to the selected language, just a different location.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Getting Search.pm air tight ... cleaned up some local variables
that were declared global
fix to asynchronous federated searching lost since dev_week, immediate
use is authority search
template fixes to item-level itemtypes and bib-level itemtypes
temp workaround to javascript problems preventing item edits
fix to installer
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
When using mysql and a sufficiently recent version
of DBD::mysql that actually respects the mysql_enable_utf8
option, setting the current branch to a name that
includes a diacritic causes the session to fail
and forces the user to the login screen upon
clicking another link.
This turned out to be due to the default (Data::Dumper)
serialization used by CGI::Session, which truncated the
session object at the diacritic. By enabling
that module's YAML serialization option, the problem
was resolved.
This patch introduces a dependency on the YAML::Syck
module.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
The former 'Nozebra' op has been renamed to 'SetIndexingEngine'
to avoid having a 'Nozebra' op and a 'NoZebra' parameter
distinguished only by case.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
[1] Web installer no longer sets FOREIGN_KEY_CHECKS = 0
when loading frameworks and sample SQL.
[2] Removed FOREIGN_KEY_CHECKS = 0 from SQL scripts
[3] Fixed FK issues in en/optional/sample_patrons.sql
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
MySQL-only: improve regex to make sure we are
checking permission on the correct database, not
on another database (when the DB name is a
subset of the DB user's name)
- .txt files have to be in utf-8 (as Koha is utf-8 now), and opened as utf-8 files
otherwise, the diacritics are mixed up on web installer
- typo fix (NoZebra vs Nozebra) to set correctly Nozebra syspref
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
HTML::Template is no more used, some were remaining,
fixing the "use ...;" to H::T::Pro only
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Changing structure :
adding a marcflavour directory to data/language/
This directory shall have the same subdirectory structure as /data/language
This allows for instance adding optionals CD-Framework or Serials Frameworks
keeping default frameworks mandatory.
install.pl was changed in order to manage those changes.
Could be changed in order to skip marcflavour selection if marcflavour directory is not found.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
More revision is required: CVS variables, bad use of map in void context,
overuse of multiple index lines instead of one RegExp, etc. Koha GPL
statement at top needed.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
previously, the order was "random". With this patch, you can choose the order
of the file that are shown for adding during install.
Just name the directories: for example 1-Mandatory, 2-Optional, 3-whateveryouwant
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
The kohaversion is in the code directory (in /kohaversion.pl)
C4::Context now has a new method C4::Context->KOHAVERSION
that returns the koha code version.
The systempreference Version contains the database version.
If the 2 are differents, when the user log in, he is redirected to web installer (new behaviour : before this commit, the check was done on everypage, it's too CPU costly I think)
In the web installer, we check now if we do a new setup or an upgrade and show only the appropriate link.
The updatedatabase contains a lot of new things :
* SetVersion($kohaversion), that set the kohaversion after each update
* TransformToNum($kohaversion) that returns a number (3.0000001 from 3.00.00.001 for example) for a given koha version
* DropAllForeignKeys($table) that does what is written : drop all foreign keys. A shame it's not possible directly in mySQL...
* for each database update, just :
add the following lines :
=item
Describe what it does for other developpers
=cut
$DBversion = "your.koha.version.dbnumber";
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
#
# DO YOUR UPDATE STUFF
#
print "Upgrade to $DBversion done (specify what it does if you want)\n";
SetVersion ($DBversion);
}
IMPORTANT NOTES :
in koha 2.2, a new install was done through installing a 2.2.0 database, then updating it to the installed version.
in Koha 3.0, /installer/kohaversion.sql MUST contain an uptodate version, as the installer set the DB version to kohaversion after uploading kohaversion.sql. It does NOT run updatedatabase.
The update from Koha 2.2 to Koha 3.0 must NOT be done through the webinstaller : updatedatabase is very very long to run and you'll reach Apache timeout for sure. See http://wiki.koha.org/doku.php?id=22_to_30 that contains my notes for upgrading (with some/few UNIMARC specific stuff)
Note For RM, please eyeball this change
Signed-off-by: Chris Cormack <crc@liblime.com>
It is to be mentioned that error came from the use of DBI.
Indeed, we read sql file OK.
But the last command came with no order => error.
Next time we should be more careful.
So this implies quite a change for files.
Sorry about conflicts which will be caused.
directory Interface::CGI should now be dropped.
I noticed that many scripts (reports ones, but also some circ/stats.pl or opac-topissues) still use Date::Manip.
skips third party software check and mysql check to go to updatedatabase.
Adding similar check to intranet and opac.
BEWARE !!!!!
You may be linked to install if you donot have Version variable set in your systempreferences table.
If so, simply updatedatabase OR add Version 3.0 record to your systempreferences table.