Author: david
Date: Mon Aug 27 11:59:58 2012
New Revision: 12218
Log:
Add new upgrader class for Release 1.3
Added:
trunk/lib/task/migrate/arUpgrader130.class.php
- copied, changed from r12208,
trunk/lib/task/migrate/arUpgrader120.class.php
Copied and modified: trunk/lib/task/migrate/arUpgrader130.class.php (from
r12208, trunk/lib/task/migrate/arUpgrader120.class.php)
==============================================================================
--- trunk/lib/task/migrate/arUpgrader120.class.php Mon Aug 27 04:31:28
2012 (r12208, copy source)
+++ trunk/lib/task/migrate/arUpgrader130.class.php Mon Aug 27 11:59:58
2012 (r12218)
@@ -18,17 +18,17 @@
*/
/**
- * Upgrade Qubit data from Release 1.2
+ * Upgrade Qubit data from Release 1.3
*
* @package qubit
* @subpackage migration
* @version svn: $Id$
*/
-class arUpgrader120
+class arUpgrader130
{
const
- MILESTONE = '1.2',
- INIT_VERSION = 75;
+ MILESTONE = '1.3',
+ INIT_VERSION = 92;
public function up($version, $configuration, $options)
{
@@ -39,383 +39,6 @@
switch ($version)
{
- // Add setting for job_scheduling
- case 75:
- $setting = new QubitSetting;
- $setting->name = 'use_job_scheduler';
- $setting->value = '0';
- $setting->culture = 'en';
-
- $setting->save();
-
- break;
-
- // Add SWORD deposit directory setting
- case 76:
- $setting = new QubitSetting;
- $setting->name = 'sword_deposit_dir';
- $setting->value = '/tmp';
- $setting->culture = 'en';
-
- $setting->save();
-
- break;
-
- // Add security settings
- case 77:
- $setting = new QubitSetting;
- $setting->name = 'require_ssl_admin';
- $setting->value = '0';
- $setting->culture = 'en';
- $setting->save();
-
- $setting = new QubitSetting;
- $setting->name = 'require_strong_passwords';
- $setting->value = '0';
- $setting->culture = 'en';
- $setting->save();
-
- $setting = new QubitSetting;
- $setting->name = 'limit_admin_ip';
- $setting->value = '0';
- $setting->culture = 'en';
- $setting->save();
-
- break;
-
- // Add browse sort settings
- case 78:
- $setting = new QubitSetting;
- $setting->name = 'sort_browser_user';
- $setting->value = 'lastUpdated';
- $setting->culture = 'en';
- $setting->save();
-
- $setting = new QubitSetting;
- $setting->name = 'sort_browser_anonymous';
- $setting->value = 'alphabetic';
- $setting->culture = 'en';
- $setting->save();
-
- break;
-
- // Add 'Language note' term
- case 79:
-
- QubitMigrate::bumpTerm(QubitTerm::LANGUAGE_NOTE_ID, $configuration);
- $term = new QubitTerm;
- $term->id = QubitTerm::LANGUAGE_NOTE_ID;
- $term->parentId = QubitTerm::ROOT_ID;
- $term->taxonomyId = QubitTaxonomy::NOTE_TYPE_ID;
- $term->name = 'Language note';
- $term->culture = 'en';
- $term->save();
-
- break;
-
- // Add 'active' column to user table
- case 80:
- // NOTE: ALTER automatically sets `active`=1 (the DEFAULT) for
existing rows
- QubitMigrate::addColumn(QubitUser::TABLE_NAME, 'active TINYINT DEFAULT
1', array('after' => 'salt'));
-
- break;
-
- // Use repository slug instead of id in acl_permission conditionals,
- // (r10996)
- case 81:
- $sql = sprintf('SELECT
- id,
- conditional,
- constants
- FROM %s
- WHERE constants IS NOT NULL', QubitAclPermission::TABLE_NAME);
-
- foreach (QubitPdo::fetchAll($sql) as $item)
- {
- if ('%p[repositoryId] == %k[repositoryId]' == $item->conditional)
- {
- $name = 'repository';
- }
- else if ('%p[taxonomyId] == %k[taxonomyId]' == $item->conditional)
- {
- $name = 'taxonomy';
- }
- else
- {
- continue;
- }
-
- $arr = unserialize($item->constants);
-
- // Get slug
- $sql = 'SELECT slug FROM slug WHERE object_id = ?';
- $slug = QubitPdo::fetchOne($sql, array($arr[$name.'Id']));
-
- // Update acl_permission values
- if ($slug)
- {
- $sql = sprintf("UPDATE %s SET
- conditional = ?,
- constants = ?
- WHERE id = ?;", QubitAclPermission::TABLE_NAME);
-
- QubitPdo::modify($sql, array(
- "%p[$name] == %k[$name]",
- serialize(array($name => $slug->slug)),
- $item->id));
- }
- }
-
- break;
-
- // Increase VARCHAR column limit to 1024 to avoid truncating long strings
- // Issue 1628
- case 82:
- // TEXT
- $textColumns = array(
- 'actor' => array(
- 'corporate_body_identifiers', 'description_identifier',
'source_standard'),
- 'actor_i18n' => array(
- 'authorized_form_of_name', 'dates_of_existence',
'institution_responsible_identifier'),
- 'contact_information' => array(
- 'contact_person', 'website'),
- 'contact_information_i18n' => array(
- 'contact_type', 'city', 'region'),
- 'event_i18n' => array(
- 'name', 'date'),
- 'function' => array(
- 'description_identifier', 'source_standard'),
- 'function_i18n' => array(
- 'authorized_form_of_name', 'classification', 'dates'),
- 'information_object' => array(
- 'identifier', 'description_identifier', 'source_standard'),
- 'information_object_i18n' => array(
- 'title', 'alternate_title', 'edition',
'institution_responsible_identifier'),
- 'note' => array(
- 'scope'),
- 'oai_harvest' => array(
- 'set'),
- 'oai_repository' => array(
- 'name', 'uri'),
- 'other_name_i18n' => array(
- 'name', 'note'),
- 'physical_object_i18n' => array(
- 'name'),
- 'property' => array(
- 'scope', 'name'),
- 'property_i18n' => array(
- 'value'),
- 'relation_i18n' => array(
- 'date'),
- 'repository' => array(
- 'identifier', 'desc_identifier'),
- 'repository_i18n' => array(
- 'desc_institution_identifier'),
- 'rights' => array(
- 'copyright_jurisdiction'),
- 'static_page_i18n' => array(
- 'title'),
- 'taxonomy' => array(
- 'usage'),
- 'taxonomy_i18n' => array(
- 'name'),
- 'term' => array(
- 'code'),
- 'term_i18n' => array(
- 'name')
- );
-
- // Convert varchar columns to text
- foreach ($textColumns as $tablename => $cols)
- {
- foreach ($cols as $col)
- {
- $sql = sprintf('ALTER TABLE %s MODIFY `%s` VARCHAR(1024);',
$tablename, $col);
- QubitPdo::modify($sql);
- }
- }
-
- // TEXT NOT NULL
- $textNotNullColumns = array(
- 'digital_object' => array(
- 'name', 'path')
- );
-
- foreach ($textNotNullColumns as $tablename => $cols)
- {
- foreach ($cols as $col)
- {
- $sql = sprintf('ALTER TABLE %s MODIFY %s VARCHAR(1024) NOT NULL;',
$tablename, $col);
- QubitPdo::modify($sql);
- }
- }
-
- break;
-
- // Increase width of digital_object.mime_type to 255 chars
- case 83:
- $sql = 'ALTER TABLE '.QubitDigitalObject::TABLE_NAME.' MODIFY
`mime_type` VARCHAR(255);';
- QubitPdo::modify($sql);
-
- break;
-
- // Add accrual constant to term table
- case 84:
- QubitMigrate::bumpTerm(QubitTerm::ACCRUAL_ID, $configuration);
- $term = new QubitTerm;
- $term->id = QubitTerm::ACCRUAL_ID;
- $term->parentId = QubitTerm::ROOT_ID;
- $term->taxonomyId = QubitTaxonomy::RELATION_TYPE_ID;
- $term->culture = 'en';
- $term->name = 'Accrual';
- $term->save();
-
- break;
-
- // Fix typo: r11890
- case 85:
- $sql = 'UPDATE '.QubitTermI18n::TABLE_NAME;
- $sql .= ' SET '.QubitTermI18n::NAME.' = "Disseminate"';
- $sql .= ' WHERE '.QubitTermI18n::CULTURE.' = "en"';
- $sql .= ' AND '.QubitTermI18n::NAME.' = "Disemanite"';
- QubitPdo::modify($sql);
-
- break;
-
- // Fix issue 2344
- case 86:
- // Type of relation: right
- // Check first wether it exists
- $criteria = new Criteria;
- $criteria->addJoin(QubitTerm::ID, QubitTermI18n::ID);
- $criteria->add(QubitTerm::TAXONOMY_ID,
QubitTaxonomy::RELATION_TYPE_ID);
- $criteria->add(QubitTermI18n::CULTURE, 'en');
- $criteria->add(QubitTermI18n::NAME, 'Right');
-
- if (null === QubitTerm::getOne($criteria))
- {
- $term = new QubitTerm;
- $term->id = QubitTerm::RIGHT_ID;
- $term->parentId = QubitTerm::ROOT_ID;
- $term->taxonomyId = QubitTaxonomy::RELATION_TYPE_ID;
- $term->name = 'Right';
- $term->culture = 'en';
- $term->save();
- }
-
- // Type of relation: donor
- // Check first wether it exists
- $criteria = new Criteria;
- $criteria->addJoin(QubitTerm::ID, QubitTermI18n::ID);
- $criteria->add(QubitTerm::TAXONOMY_ID,
QubitTaxonomy::RELATION_TYPE_ID);
- $criteria->add(QubitTermI18n::CULTURE, 'en');
- $criteria->add(QubitTermI18n::NAME, 'Donor');
-
- if (null === QubitTerm::getOne($criteria))
- {
- $term = new QubitTerm;
- $term->id = QubitTerm::DONOR_ID;
- $term->parentId = QubitTerm::ROOT_ID;
- $term->taxonomyId = QubitTaxonomy::RELATION_TYPE_ID;
- $term->name = 'Donor';
- $term->culture = 'en';
- $term->save();
- }
-
- break;
-
- // Change property name from dipUUID to aipUUID
- case 87:
- $sql = 'UPDATE '.QubitProperty::TABLE_NAME.' SET name = "aipUUID"
WHERE name = "dipUUID"';
- QubitPdo::modify($sql);
-
- break;
-
- // According to r10747, keymap.source_id changed from INTEGER to TEXT
- case 88:
- $sql = 'ALTER TABLE '.QubitKeymap::TABLE_NAME.' CHANGE source_id
source_id TEXT';
- QubitPdo::modify($sql);
-
- break;
-
- // Add "Visible elements" assets
- case 89:
- $elements = array(
- 'isad_immediate_source',
- 'isad_appraisal_destruction',
- 'isad_notes',
- 'isad_physical_condition',
- 'isad_control_description_identifier',
- 'isad_control_institution_identifier',
- 'isad_control_rules_conventions',
- 'isad_control_status',
- 'isad_control_level_of_detail',
- 'isad_control_dates',
- 'isad_control_languages',
- 'isad_control_scripts',
- 'isad_control_sources',
- 'isad_control_archivists_notes',
- 'rad_physical_condition',
- 'rad_immediate_source',
- 'rad_general_notes',
- 'rad_conservation_notes',
- 'rad_control_description_identifier',
- 'rad_control_institution_identifier',
- 'rad_control_rules_conventions',
- 'rad_control_status',
- 'rad_control_level_of_detail',
- 'rad_control_dates',
- 'rad_control_language',
- 'rad_control_script',
- 'rad_control_sources',
- 'digital_object_url',
- 'digital_object_file_name',
- 'digital_object_media_type',
- 'digital_object_mime_type',
- 'digital_object_file_size',
- 'digital_object_uploaded',
- 'physical_storage');
-
- // Add visibility settings
- foreach ($elements as $item)
- {
- $setting = new QubitSetting;
- $setting->name = $item;
- $setting->scope = 'element_visibility';
- $setting->value = 1;
- $setting->culture = 'en';
- $setting->save();
- }
-
- // Add "Visible elements" menu
- $node = new QubitMenu;
- $node->parentId = QubitMenu::ADMIN_ID;
- $node->name = 'visibleElements';
- $node->path = 'settings/visibleElements';
- $node->label = 'Visible elements';
- $node->save();
-
- // Introduce it after "globalReplace"
- if (null !== $target = QubitMenu::getByName('globalReplace'))
- {
- $node->moveToNextSiblingOf($target);
- }
-
- break;
-
- // Make property_i18n.value field TEXT to accommodate pdf text (r12026)
- case 90:
- $sql = 'ALTER TABLE `property_i18n` MODIFY `value` TEXT;';
- QubitPdo::modify($sql);
-
- break;
-
- // Update translations from fixtures
- case 91:
- QubitMigrate::addNewFixtureI18ns();
-
- break;
-
// Return false if no upgrade available
default:
--
You received this message because you are subscribed to the Google Groups
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/qubit-commits?hl=en.