From cc88a199937bcd3001c95b4ce2772ec5cf236355 Mon Sep 17 00:00:00 2001 From: Angie Byron <webchick@24967.no-reply.drupal.org> Date: Sat, 24 Oct 2009 01:22:28 +0000 Subject: [PATCH] #612920 by catch: Added required table columns so that update.php doesn't spew fatal errors. --- includes/update.inc | 6 +++++- modules/system/system.install | 11 +++++++++++ update.php | 11 ++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/includes/update.inc b/includes/update.inc index f66e734c4a8c..f8c731e6d0e5 100644 --- a/includes/update.inc +++ b/includes/update.inc @@ -126,7 +126,11 @@ function update_fix_d7_requirements() { // Add the cache_path table. $schema['cache_path'] = drupal_get_schema_unprocessed('system', 'cache'); $schema['cache_path']['description'] = 'Cache table used for path alias lookups.'; - db_create_table('cache_path', $schema['cache_path']); + + // system_update_7042() renames columns, but these are needed to bootstrap. + // add empty columns for now. + db_add_field('url_alias', 'source', array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '')); + db_add_field('url_alias', 'alias', array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '')); // Add column for locale context. if (db_table_exists('locales_source')) { diff --git a/modules/system/system.install b/modules/system/system.install index 87dfb8d1f860..663d67b76180 100644 --- a/modules/system/system.install +++ b/modules/system/system.install @@ -2832,6 +2832,16 @@ function system_update_7041() { * Rename dst and src to source and alias. */ function system_update_7042() { + // update_fix_d7_requirements() adds 'fake' source and alias columns to + // allow bootstrap to run without fatal errors. Remove those columns now + // so that we can rename properly. + db_drop_field('url_alias', 'source'); + db_drop_field('url_alias', 'alias'); + + // Add the cache_path table. + $schema['cache_path'] = drupal_get_schema_unprocessed('system', 'cache'); + $schema['cache_path']['description'] = 'Cache table used for path alias lookups.'; + db_create_table('cache_path', $schema['cache_path']); // Drop indexes. db_drop_index('url_alias', 'src_language_pid'); db_drop_unique_key('url_alias', 'dst_language_pid'); @@ -2841,6 +2851,7 @@ function system_update_7042() { // Add indexes back. db_add_index('url_alias', 'source_language_pid', array('source', 'language', 'pid')); db_add_unique_key('url_alias', 'alias_language_pid', array('alias', 'language', 'pid')); + } /** diff --git a/update.php b/update.php index 18612a50a453..89dc829f0740 100644 --- a/update.php +++ b/update.php @@ -334,6 +334,16 @@ function update_check_requirements() { install_goto('update.php?op=info'); } +// update_fix_d7_requirements() needs to run before bootstrapping beyond path. +// So bootstrap to DRUPAL_BOOTSTRAP_LANGUAGE then include unicode.inc. + +drupal_bootstrap(DRUPAL_BOOTSTRAP_LANGUAGE); +include_once DRUPAL_ROOT . '/includes/unicode.inc'; + +update_fix_d7_requirements(); + +// Now proceed with a full bootstrap. + drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); drupal_maintenance_theme(); @@ -348,7 +358,6 @@ function update_check_requirements() { include_once DRUPAL_ROOT . '/includes/batch.inc'; drupal_load_updates(); - update_fix_d7_requirements(); update_fix_compatibility(); $op = isset($_REQUEST['op']) ? $_REQUEST['op'] : ''; -- GitLab