Author: sevein
Date: Tue Jul 24 17:00:48 2012
New Revision: 11975
Log:
More fixes in SQL upgrades
Modified:
trunk/lib/task/migrate/arUpgrader110.class.php
trunk/lib/task/migrate/arUpgrader120.class.php
Modified: trunk/lib/task/migrate/arUpgrader110.class.php
==============================================================================
--- trunk/lib/task/migrate/arUpgrader110.class.php Tue Jul 24 15:05:04
2012 (r11974)
+++ trunk/lib/task/migrate/arUpgrader110.class.php Tue Jul 24 17:00:48
2012 (r11975)
@@ -30,7 +30,7 @@
MILESTONE = '1.1',
INIT_VERSION = 62;
- public function up($version, $configuration)
+ public function up($version, $configuration, $options)
{
// This upgrader class is a port of QubitMigrate110
// updateSchema() introduces the SQL schema changes that did not
@@ -40,6 +40,11 @@
$this->updateSchema($configuration);
}
+ if (isset($options['verbose']))
+ {
+ echo "up($version)\n";
+ }
+
switch ($version)
{
// Add accession module menu entry, internal taxonomies,
@@ -462,7 +467,7 @@
case 64:
$sql = 'UPDATE '.QubitDigitalObject::TABLE_NAME;
$sql .= ' SET '.QubitDigitalObject::CHECKSUM_TYPE.' = "md5"';
- $sql .= ' WHERE CHAR_LENGTH(checksum_type) > 0';
+ $sql .= ' WHERE CHAR_LENGTH(checksum) > 0';
QubitPdo::modify($sql);
break;
@@ -547,20 +552,20 @@
break;
// Move digital objects to repository specific paths like r9503
- case 70: echo "TODO case 70 NEEDS TESTING\n";
+ case 70:
if (!file_exists(sfConfig::get('sf_upload_dir').'/r'))
{
mkdir(sfConfig::get('sf_upload_dir').'/r', 0775);
}
$criteria = new Criteria;
- $criteria->add(QubitDigitalObject::INFORMATION_OBJECT_ID,
Criteria::ISNOTNULL);
+ $criteria->add(QubitDigitalObject::INFORMATION_OBJECT_ID, null,
Criteria::ISNOTNULL);
foreach (QubitDigitalObject::get($criteria) as $item)
{
$io = QubitInformationObject::getById($item->informationObjectId);
// Build repository dirname
- if (null !== $repository = $io->getRepository)
+ if (null !== $repository = $io->getRepository(array('inherit' =>
true)))
{
if (!isset($repository->slug))
{
@@ -582,8 +587,16 @@
$repoName = 'null';
}
- foreach ($io->getDescendants()->andSelf() as $digitalObject)
+ // Update digital object and derivatives paths
+ $criteria = new Criteria;
+ $c1 = $criteria->getNewCriterion(QubitDigitalObject::PARENT_ID,
$item->id);
+ $c2 = $criteria->getNewCriterion(QubitDigitalObject::ID, $item->id);
+ $c1->addOr($c2);
+ $criteria->add($c1);
+ $criteria->addAscendingOrderByColumn(QubitDigitalObject::USAGE_ID);
+ foreach (QubitDigitalObject::get($criteria) as $digitalObject)
{
+ // Don't try to move remote assets
if (QubitTerm::EXTERNAL_URI_ID == $digitalObject->usageId)
{
continue;
@@ -748,12 +761,16 @@
public function updateSchema($configuration)
{
// Add ON DELETE CASCADE in slug.object_id
+ $connection = Propel::getConnection();
+ $connection->exec('SET FOREIGN_KEY_CHECKS = 0');
$sql = "ALTER TABLE `slug`
DROP FOREIGN KEY `slug_FK_1`,
ADD FOREIGN KEY (`object_id`)
REFERENCES `qubit`.`object` (`id`)
- ON DELETE CASCADE ON UPDATE RESTRICT;";
- QubitPdo::modify($sql);
+ ON DELETE CASCADE
+ ON UPDATE RESTRICT;";
+ $connection->exec($sql);
+ $connection->exec('SET FOREIGN_KEY_CHECKS = 1');
// Drop parent_id, lft and rgt columns from table note
QubitMigrate::dropColumn(QubitNote::TABLE_NAME, 'parent_id');
@@ -773,7 +790,7 @@
// Add repository.upload_limit
QubitMigrate::addColumn(QubitRepository::TABLE_NAME, 'upload_limit FLOAT',
array('after' => 'desc_identifier'));
- // Drop column digita_object.checksum_type_id
+ // Drop column digital_object.checksum_type_id
QubitMigrate::dropColumn(QubitDigitalObject::TABLE_NAME,
'checksum_type_id');
// Add column digital_object.checksumn_type
Modified: trunk/lib/task/migrate/arUpgrader120.class.php
==============================================================================
--- trunk/lib/task/migrate/arUpgrader120.class.php Tue Jul 24 15:05:04
2012 (r11974)
+++ trunk/lib/task/migrate/arUpgrader120.class.php Tue Jul 24 17:00:48
2012 (r11975)
@@ -30,8 +30,13 @@
MILESTONE = '1.2',
INIT_VERSION = 75;
- public function up($version, $configuration)
+ public function up($version, $configuration, $options)
{
+ if (isset($options['verbose']))
+ {
+ echo "up($version)\n";
+ }
+
switch ($version)
{
// Add setting for job_scheduling
--
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.