summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/update.inc6
-rw-r--r--modules/system/system.install11
-rw-r--r--update.php11
3 files changed, 26 insertions, 2 deletions
diff --git a/includes/update.inc b/includes/update.inc
index f66e734c4..f8c731e6d 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 87dfb8d1f..663d67b76 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 18612a50a..89dc829f0 100644
--- a/update.php
+++ b/update.php
@@ -334,6 +334,16 @@ if (empty($op) && update_access_allowed()) {
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 @@ if (update_access_allowed()) {
include_once DRUPAL_ROOT . '/includes/batch.inc';
drupal_load_updates();
- update_fix_d7_requirements();
update_fix_compatibility();
$op = isset($_REQUEST['op']) ? $_REQUEST['op'] : '';