Details
Upgrading a Drupal site from D6 to D7.
These instructions assume:
- Drupal 6 core is up to date.
- Contributed modules/themes are up to date.
- Database backed up.
- DNS aliases and virtual host set up.
# Get a working copy of all the Sanctuary websites from Ixis server.
[ixis@server]
# Git.
git add .
git commit -a -m "Snapshot of live sites"
git push
# Get a working copy of all the Sanctuary websites from Ixis server.
[admin@server]
pushd /var/local/
# Create a new local copy (clone) of the GIT codebase.
git clone donkeys-git-master donkeys-git-dev4
popd
# Fix file permissions after downloading from git repository.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6
id apache
# uid=48(apache) gid=48(apache) groups=48(apache)
chgrp -R apache files
chmod -R g+w files
pushd files
find . -type d -exec chmod g+ws '{}' \;
popd
popd
----
***********************************************************************
** This doesn't work on admin@server **
** Run on gamma and then copy/paste SQL file to admin@server for now **
** gunzip file **
***********************************************************************
# Backup mySQL databases on Ixis server.
[admin@server~]
# Load settings and functions.
source ~/local-settings.txt
# Create backup directories.
mkdir /var/local/backups
mkdir /var/local/backups/ixis
# Create a list of database names.
cat > /var/local/backups/ixis/backup-databases.txt << EOF
cyprus
ireland
italy
research
sanctuary
spain
welfare
EOF
# Create a database dump for each mySQL database.
for database in $(cat /var/local/backups/ixis/backup-databases.txt)
do
echo "Database is : ${database}"
backupsite=${database}
backupuser=jenifer
backuphost=ixis.example.com
remotepath=/var/local/donkeys-git/drupal-6
backupdate=$(date '+%Y%m%d%H%M%S')
backupfile=${backupsite}-${backuphost}-${backupdate}.sql.gz
backuppath=/var/local/backups/ixis/${backupfile}
echo "Running database dump of : ${database}"
# Run database dump and compress on remote server, store on local disk.
ssh ${backupuser}@${backuphost} "cd ${remotepath} ; drush -l ${backupsite} sql-dump | gzip" > "${backuppath}"
echo "Dump location : ${backuppath}"
done
----
# Add new site details to local settings and functions.
[admin@server~]
# Add 'dev1' to settings.
vi ~/local-settings.txt
#[dev1]
dev1_mysqldrupaluser=*****
dev1_mysqldrupalpass=*****
dev1_mysqldrupaldata=*****
# Load settings and functions.
source ~/local-settings.txt
----
# Add the DNS aliases
# Go to easyDNS.
----
# Create virtual host files.
[admin@server~]
pushd /etc/httpd/conf.d
cat > six.example.com.conf << EOF
<VirtualHost *:80>
ServerAdmin jenifer.tucker@thedonkeysanctuary.org.uk
ServerName six.example.com
LogLevel warn
ErrorLog /var/log/httpd/six.example.com.error.log
CustomLog /var/log/httpd/six.example.com.access.log combined
DocumentRoot /var/local/donkeys-git-dev1/drupal-6
<Directory /var/local/donkeys-git-dev1/drupal-6>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
EOF
cat > dev1.example.com.conf << EOF
<VirtualHost *:80>
ServerAdmin jenifer.tucker@thedonkeysanctuary.org.uk
ServerName dev1.example.com
LogLevel warn
ErrorLog /var/log/httpd/dev1.example.com.error.log
CustomLog /var/log/httpd/dev1.example.com.access.log combined
DocumentRoot /var/local/donkeys-git-dev1/drupal-7
<Directory /var/local/donkeys-git-dev1/drupal-7>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
EOF
# Reload Apache service.
service httpd reload
popd
----
# DRUPAL 6 DATABASE.
# Create 'sanctuary' database.
[admin@server~]
# Check mySQL is running.
/etc/init.d/mysqld status
# Load local settings.
source ~/local-settings.txt
# Drop existing database.
mysql --user=${mysqladminuser} --password=${mysqladminpass} \
--execute="DROP DATABASE ${sanctuary_mysqldrupaldata}"
# Create database.
mysql --user=${mysqladminuser} --password=${mysqladminpass} \
--execute="CREATE DATABASE ${sanctuary_mysqldrupaldata} DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci"
# Grant permissions.
mysql --user=${mysqladminuser} --password=${mysqladminpass} \
--execute="GRANT ALL ON ${sanctuary_mysqldrupaldata}.* TO '${sanctuary_mysqldrupaluser}'@'localhost' IDENTIFIED BY '${sanctuary_mysqldrupalpass}'"
# Load latest backup into empty database.
mysql \
--user=${sanctuary_mysqldrupaluser} \
--password=${sanctuary_mysqldrupalpass} \
--database=${sanctuary_mysqldrupaldata} \
< /var/local/backups/ixis/sanctuary-ixis.example.com-20130428034739.sql
# Connect to database.
mysql --user=${mysqladminuser} --password=${mysqladminpass}
# Connect to database.
USE sanctuary ;
# Delete duplicate entries.
CREATE TEMPORARY TABLE myfids1 SELECT min(fid) AS toad FROM files GROUP BY filepath HAVING count(fid) > 1 ;
DELETE FROM files WHERE fid in (SELECT * FROM myfids1) ;
# Run command again to catch >2 duplicate entries.
CREATE TEMPORARY TABLE myfids4 SELECT min(fid) AS toad FROM files GROUP BY filepath HAVING count(fid) > 1 ;
DELETE FROM files WHERE fid in (SELECT * FROM myfids4) ;
# Delete forum content.
DELETE FROM node WHERE type='forum';
quit
----
# DRUPAL 7 DATABASE.
# Create 'dev1' database.
[admin@server~]
# Drop existing database (and other databases not being developed - est, ireland, spain, italy, cyprus, research, welfare).
mysql --user=${mysqladminuser} --password=${mysqladminpass} \
--execute="DROP DATABASE ${dev1_mysqldrupaldata}"
# Create database.
mysql --user=${mysqladminuser} --password=${mysqladminpass} \
--execute="CREATE DATABASE ${dev1_mysqldrupaldata} DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci"
# Grant permissions.
mysql --user=${mysqladminuser} --password=${mysqladminpass} \
--execute="GRANT ALL ON ${dev1_mysqldrupaldata}.* TO '${dev1_mysqldrupaluser}'@'localhost' IDENTIFIED BY '${dev1_mysqldrupalpass}'"
# Show existing databases.
mysql --user=${mysqladminuser} --password=${mysqladminpass} \
--execute="SHOW DATABASES"
# Check database connection.
mysql --user=${dev1_mysqldrupaluser} --password=${dev1_mysqldrupalpass} ${dev1_mysqldrupaldata} \
--execute="SELECT VERSION()"
----
# DRUPAL 6 CORE AND MODULES.
# Ensure all contributed modules are up to date.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6
# Clear drush cache.
drush cc drush
# Check available updates for enabled modules (automatically runs database updates if required).
drush -l sanctuary pm-update
popd
# Remove uninstalled modules from the modules directory.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/sites/all/modules
rm -rf custom_breadcrumbs
rm -rf ecard
rm -rf elf
rm -rf event
rm -rf event_views
rm -rf flickrapi
rm -rf googtube
rm -rf imagefield_crop
rm -rf mimedetect
rm -rf mimemail
rm -rf node_expire
rm -rf radioactivity
rm -rf rules
rm -rf simplenews
rm -rf site_verify
rm -rf views_slideshow
popd
# Disable all themes no longer required.
# http://six.example.com/admin/build/themes
# Adaptivetheme
# Blogbuzz
# Remove old themes from the themes directory.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/sites/all/themes
rm -rf adaptivetheme
rm -rf blogbuzz
popd
# Move old imported files from images directory.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/files/donkeys/images/import
# Move images to images directory.
mv filey* /var/local/donkeys-git-dev1/drupal-6/files/donkeys/images
popd
# Remove legacy image content.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/files/donkeys/imagecache
rm -rf cart
rm -rf product
rm -rf product_list
rm -rf uc_thumbnail
popd
# Remove legacy image thumbnails.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/files/donkeys/imagefield_thumbs
rm -rf hannah-sponsoradonkey.png
rm -rf "Kennel Barn. Photo copyright of The Donkey Sanctuary.jpg"
rm -rf Slideshow-Egypt.jpg
popd
----
# DRUSH UPGRADE.
# Install Drupal 7 modules required to run Drush site upgrade (if not already on VM).
[admin@server~]
drush dl drush_sup
----
# DRUPAL 6 SYMBOLIC LINKS.
# Create symbolic links.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/sites
ln -s sanctuary six.example.com
popd
----
# DRUPAL 6 FILES DIRECTORY.
# Create symbolic links.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/files
# Create symbolic linkS.
ln -s donkeys sanctuary
ln -s donkeys six.example.com
popd
----
# DRUPAL 6 IMAGE ATTACH CONVERTER.
# http://drupal.org/node/201983
# Login as admin user.
http://six.example.com/user
# Clear cached data.
http://six.example.com/admin/settings/performance
# Create prerequisite imagefield type.
# The imagefield field that you have already created and configured as per Prerequisites.
# $field_name = 'field_image_field'
# The content type that you have already created as per Prerequisites.
# $type_name = 'imagefield';
http://six.example.com/admin/content/types/add
Name: Photo
Type: imagefield
Description: Prerequisite imagefield type for image converter.
http://six.example.com/admin/content/node-type/imagefield/fields
New field: imagefield
Field_ image_field
Data type: File
Form element: Image
Number of values: Unlimited
Description field: Enabled
# Add new 'image_field' to content types (where attached images are enabled).
http://six.example.com/admin/content/node-type/blog/fields
http://six.example.com/admin/content/node-type/corporate-partnership/fields
http://six.example.com/admin/content/node-type/event/fields
http://six.example.com/admin/content/node-type/fundraising/fields
http://six.example.com/admin/content/node-type/page/fields
http://six.example.com/admin/content/node-type/pressrelease/fields
http://six.example.com/admin/content/node-type/rehome/fields
http://six.example.com/admin/content/node-type/story/fields
http://six.example.com/admin/content/node-type/videoclip/fields
http://six.example.com/admin/content/node-type/webform/fields
# Remove redundant 'copyright' field.
http://six.example.com/admin/content/node-type/image/fields/field_image_copyright/remove
# Migrate all image module nodes to imagefields.
pushd /var/local/donkeys-git-dev1/drupal-6
# Copy migration script to Drupal 6 core.
cp /var/local/scripts/imagefield_migrate.php .
# Run script.
http://six.example.com/imagefield_migrate.php
# - content_type_imagefield populated.
# - content_field_image_field populated.
# - files table updated
JLT todo... check as think these are nodes with more than one image.
update content_type_imagefield failed for 6452
update content_field_image_field failed for 6452
update content_type_imagefield failed for 6735
update content_field_image_field failed for 6735
update content_type_imagefield failed for 6736
update content_field_image_field failed for 6736
update content_type_imagefield failed for 6752
update content_field_image_field failed for 6752
update content_type_imagefield failed for 6782
update content_field_image_field failed for 6782
update content_type_imagefield failed for 6783
update content_field_image_field failed for 6783
update content_type_imagefield failed for 6785
update content_field_image_field failed for 6785
update content_type_imagefield failed for 6786
update content_field_image_field failed for 6786
update content_type_imagefield failed for 6787
update content_field_image_field failed for 6787
update content_type_imagefield failed for 6802
update content_field_image_field failed for 6802
update content_type_imagefield failed for 6803
update content_field_image_field failed for 6803
update content_type_imagefield failed for 6805
update content_field_image_field failed for 6805
update content_type_imagefield failed for 6806
update content_field_image_field failed for 6806
update content_type_imagefield failed for 6813
update content_field_image_field failed for 6813
update content_type_imagefield failed for 6815
update content_field_image_field failed for 6815
update content_type_imagefield failed for 6816
update content_field_image_field failed for 6816
update content_type_imagefield failed for 6843
update content_field_image_field failed for 6843
update content_type_imagefield failed for 6844
update content_field_image_field failed for 6844
update content_type_imagefield failed for 6845
update content_field_image_field failed for 6845
update content_type_imagefield failed for 6846
update content_field_image_field failed for 6846
update content_type_imagefield failed for 6848
update content_field_image_field failed for 6848
update content_type_imagefield failed for 6903
update content_field_image_field failed for 6903
update content_type_imagefield failed for 6904
update content_field_image_field failed for 6904
update content_type_imagefield failed for 6947
update content_field_image_field failed for 6947
update content_type_imagefield failed for 6948
update content_field_image_field failed for 6948
update content_type_imagefield failed for 6949
update content_field_image_field failed for 6949
update content_type_imagefield failed for 6950
update content_field_image_field failed for 6950
update content_type_imagefield failed for 6951
update content_field_image_field failed for 6951
update content_type_imagefield failed for 6954
update content_field_image_field failed for 6954
update content_type_imagefield failed for 6955
update content_field_image_field failed for 6955
update content_type_imagefield failed for 6956
update content_field_image_field failed for 6956
update content_type_imagefield failed for 6964
update content_field_image_field failed for 6964
update content_type_imagefield failed for 6966
update content_field_image_field failed for 6966
update content_type_imagefield failed for 6975
update content_field_image_field failed for 6975
update content_type_imagefield failed for 6976
update content_field_image_field failed for 6976
update content_type_imagefield failed for 6977
update content_field_image_field failed for 6977
update content_type_imagefield failed for 6979
update content_field_image_field failed for 6979
update content_type_imagefield failed for 6980
update content_field_image_field failed for 6980
update content_type_imagefield failed for 6981
update content_field_image_field failed for 6981
# - 1647 image_attach relationships were migrated.
# Remove script to prevent re-running.
rm -rf imagefield_migrate.php
popd
----
# DRUPAL 6 IMAGE HANDLING.
# Disable image module (image, image attach, image gallery).
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6
# Disable image module and extensions.
drush -l sanctuary --yes pm-disable image
# Download new image handling modules.
drush -l sanctuary dl imagecache
drush -l sanctuary dl imageapi
# Clear drush cache.
drush cache-clear drush
# Enable modules (ImageAPI GD2, ImageAPI, ImageCache UI, ImageCache).
drush -l sanctuary --yes pm-enable imageapi
drush -l sanctuary --yes pm-enable imagecache
# JLT TODO... User permissions (if required).
# http://six.example.com/admin/user/permissions
popd
# Remove image module.
pushd /var/local/donkeys-git-dev1/drupal-6/sites/all/modules
rm -rf image
popd
# Enable ImageCacheUI and ImageAPI GD2 modules.
http://six.example.com/admin/build/modules
# Enable Dashboard and Toolkit modules.
http://six.example.com/admin/build/modules
# Delete 'donkidz' taxonomy.
http://six.example.com/admin/content/taxonomy/edit/vocabulary/37
# Disable 'rebrand' theme, set 'garland' as default theme.
http://six.example.com/admin/build/themes
# Clear cached data.
http://six.example.com/admin/settings/performance
# Remove 'amadou' theme and 'rebrand' sub-theme from the themes directory.
# JLT TODO... remove 'pippa' theme.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/sites/all/themes
rm -rf amadou
rm -rf rebrand
popd
----
# DRUPAL 6 UPGRADE TO DRUPAL 7.
# Create alias file.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6/sites/sanctuary
# Create alias file.
cat > /var/local/donkeys-git-dev1/drupal-6/sites/sanctuary/dev1.alias.drushrc.php << EOF
<?php
\$aliases['dev1'] = array(
'root' => '/var/local/donkeys-git-dev1/drupal-7',
'uri' => 'sanctuary',
'db-url' => 'mysql://${dev1_mysqldrupaluser}:${dev1_mysqldrupalpass}@localhost/${dev1_mysqldrupaldata}',
);
EOF
# Copy default settings file.
# cp /var/local/donkeys-git-dev1/drupal-7/sites/default/default.settings.php /var/local/donkeys-git-dev1/drupal-7/sites/sanctuary
popd
# Run site-upgrade command.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-6
# Run site upgrade.
drush -l sanctuary site-upgrade @dev1
----
# DRUPAL 7 OVERRIDES.
# Remove robots.txt file (using robotsTxt module).
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7
mv robots.txt robots.txt.20130501
popd
----
# DRUPAL 7 SYMBOLIC LINKS.
# Create symbolic links.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7/sites
ln -s sanctuary dev1.thedonkeysanctuary.org.uk
ln -s sanctuary dev1.example.com
popd
----
# DRUPAL 7 FILES DIRECTORY.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7/files
# Create symbolic links.
ln -s donkeys sanctuary
ln -s donkeys dev1.example.com
popd
# Set file permissions.
pushd /var/local/donkeys-git-dev1/drupal-7
chgrp -R apache files
chmod -R g+w files
popd
pushd /var/local/donkeys-git-dev1/drupal-7/files
chmod o-w donkeys
find . -type d -exec chmod g+ws '{}' \;
popd
----
# DRUPAL 7 PRIVATE FILES DIRECTORY.
# Create private file system path.
[admin@server~]
pushd /var/local/donkeys-git-dev1
# Create files directory.
mkdir files-7
chgrp -R apache files-7
chmod -R g+w files-7
pushd files-7
find . -type d -exec chmod g+ws '{}' \;
popd
popd
----
# DRUPAL 7 MODULES.
# Add new contributed modules.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7
# Patch fix for ctools module.
drush -l sanctuary dl ctools-7.x-1.x-dev
# Download replacement modules.
drush -l sanctuary dl contact_forms
drush -l sanctuary dl ecard
drush -l sanctuary dl transliteration
# Download new modules.
drush -l sanctuary dl filefield_paths
drush -l sanctuary dl filefield_sources
drush -l sanctuary dl imagecache_actions
drush -l sanctuary dl linkchecker
drush -l sanctuary dl term_reference_tree
# Infinite page scroller.
# http://drupal.org/project/views_infinite_scroll
# Menu import module.
drush -l sanctuary dl menu_import
# Video embed field module.
drush -l sanctuary dl video_embed_field
# Media Flickr module.
drush -l sanctuary dl media_flickr
drush -l sanctuary dl libraries
drush -l sanctuary dl views_infinite_scroll
pushd sites/all
mkdir libraries
mkdir autopager
popd
pushd /var/local/donkeys-git-dev1/drupal-7/sites/all/autopager
wget http://jquery-autopager.googlecode.com/files/jquery.autopager-1.0.0.js
popd
# Enable existing modules (disabled during site upgrade).
drush -l sanctuary --yes pm-enable aggregator
drush -l sanctuary --yes pm-enable blog
drush -l sanctuary --yes pm-enable image
drush -l sanctuary --yes pm-enable profile
drush -l sanctuary --yes pm-enable search
drush -l sanctuary --yes pm-enable taxonomy
JLT to check...
The following extensions will be enabled: taxonomy
Do you really want to continue? (y/n): y
Invalid argument supplied for foreach() taxonomy.views.inc:429 [warning]
Invalid argument supplied for foreach() taxonomy.views.inc:429
drush -l sanctuary --yes pm-enable trigger
# Enable new modules.
drush -l sanctuary --yes pm-enable contact_forms
drush -l sanctuary --yes pm-enable ecard
drush -l sanctuary --yes pm-enable filefield_paths
drush -l sanctuary --yes pm-enable filefield_sources
drush -l sanctuary --yes pm-enable imagecache_actions
drush -l sanctuary --yes pm-enable linkchecker
drush -l sanctuary --yes pm-enable term_reference_tree
drush -l sanctuary --yes pm-enable transliteration
drush -l sanctuary --yes pm-enable menu_import
drush -l sanctuary --yes pm-enable video_embed_field
drush -l sanctuary --yes pm-enable media_flickr
drush -l sanctuary --yes pm-enable libraries
drush -l sanctuary --yes pm-enable views_infinite_scroll
# Clear all caches.
drush -l sanctuary cc all
----
# Note: Media_Flickr
#
# To use it, enable the Media module. You'll also need to apply for a Flickr API
# key, from http://www.flickr.com/services/api/keys, which you will paste into
# the settings page at /admin/configure/media/media_flickr.
# http://dev1.example.com/admin/config/media/media_flickr
# Set up tutorial.
# http://drupal.org/node/1406068#comment-5630428
----
# DRUPAL 7 THEMES.
# Add new contributed themes.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7
drush dl marinelli
popd
# Create new subtheme.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7/sites/all/themes/marinelli
# Copy 'marinelli' theme.
cp -r subtheme ../avocet
cp -r css ../avocet
# Copy 'marinelli' theme.
cp -r subtheme ../curlew
cp -r css ../curlew
# Copy 'marinelli' theme.
cp -r subtheme ../heron
cp -r css ../heron
popd
# Rename the subtheme.info.txt file to match the new theme name.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7/sites/all/themes/avocet
mv subtheme.info.txt avocet.info
vi avocet.info
[find] subtheme [replace] avocet
# Uncomment stylesheets to override 'marinelli' theme.
stylesheets[all][] = css/reset/reset.css
stylesheets[all][] = css/common.css
stylesheets[all][] = css/links.css
stylesheets[all][] = css/typography.css
stylesheets[all][] = css/forms.css
stylesheets[all][] = css/drupal.css
stylesheets[all][] = css/layout.css
stylesheets[all][] = css/primary-links.css
stylesheets[all][] = css/slideshow.css
stylesheets[all][] = css/secondary-links.css
stylesheets[all][] = css/blocks.css
stylesheets[all][] = css/node.css
stylesheets[all][] = css/comments.css
popd
pushd /var/local/donkeys-git-dev1/drupal-7/sites/all/themes/curlew
mv subtheme.info.txt curlew.info
vi curlew.info
[find] subtheme [replace] curlew
# Uncomment stylesheets to override 'marinelli' theme (as above).
popd
pushd /var/local/donkeys-git-dev1/drupal-7/sites/all/themes/heron
mv subtheme.info.txt heron.info
vi heron.info
[find] subtheme [replace] heron
# Uncomment stylesheets to override 'marinelli' theme (as above).
popd
----
# DRUPAL 7 SITE CONFIGURATION.
# Login as admin user.
http://dev1.example.com/user
# Clear cache in Drupal 7 site (disable caching while developing).
http://dev1.example.com/admin/config/development/performance
# Enable update manager module.
http://dev1.example.com/admin/modules
# Check status report (run cron manually to check available updates).
http://dev1.example.com/admin/reports/status
# Check date and time configuration.
http://dev1.example.com/admin/config/regional/date-time
# Migrate content type fields.
http://dev1.example.com/admin/structure/content_migrate
# Enable and set as default the 'avocet' sub-theme.
http://dev1.example.com/admin/appearance
# Disable site name and site slogan.
# Disable default logo (files/donkeys/images/DonkeySanctuaryMasterTabLogo-Sanctuary-20120807.png)
# Disable default favicon (files/donkeys/images/rebrand_favicon.png).
# Disable CSS3 settings.
# Add custom path to custom logo and icon.
http://dev1.example.com/admin/appearance/settings/avocet
# Delete the URL redirect from 404 to node/1535.
http://dev1.example.com/admin/config/search/redirect
# Set URL path setting for 'page not found' (404).
http://dev1.example.com/node/1535/edit
# Set default 404 (not found) page.
http://dev1.example.com/admin/config/system/site-information
# Override default front page.
http://dev1.example.com/admin/config/system/site-information
# Enable 'insert block' and 'insert views' filters.
http://dev1.example.com/admin/config/content/formats/3
# Enable 'search block'.
# Block title <none>
# Add to search region in 'avocet' (default) theme
# Show block on all pages
http://dev1.example.com/admin/structure/block/manage/search/form/configure
# Configure link checker.
http://dev1.example.com/admin/config/content/linkchecker
# Configure private file system path.
http://dev1.example.com/admin/config/media/file-system
Public file system path: /files/donkeys
Private file system path /var/local/donkeys-git-dev1/files-7
Temporary directory : /files/donkeys/tmp
# Convert uppercase strings, to lowercase (*are we sure*).
# http://dev1.example.com/admin/config/media/file-system/transliteration
----
# DRUPAL 7 CONTENT TYPES.
# Import content types from 'seven'.
http://dev1.example.com/admin/structure/types/import
----
# DEPRECATED MENUS (to do before importing views).
# Remove old menus.
http://dev1.example.com/admin/structure/menu/manage/menu-stay-informed/delete
http://dev1.example.com/admin/structure/menu/manage/menu-what-we-do---/delete
http://dev1.example.com/admin/structure/menu/manage/menu-what-you-can-do/delete
http://dev1.example.com/admin/structure/menu/manage/menu-who-we-are---/delete
# Broken admin pages/links after upgrade if "Administer" was not in the "Navigation" menu.
# Workaround http://drupal.org/node/865702#comment-4015758
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7
# Load local settings.
source ~/local-settings.txt
# Connect to database.
mysql --user=${mysqladminuser} --password=${mysqladminpass}
# Connect to database.
USE sanctuary ;
DELETE FROM menu_links WHERE module = 'system';
# Exit.
quit
popd
# Clear cache.
http://dev1.example.com/admin/config/development/performance
# Find D6 'Administer' menu link in 'Navigation' menu (upgrade messes up admin menu).
# Move to 'Management' menu (weight -50) and nest menu items below.
http://dev1.example.com/admin/structure/menu/manage/management
----
# Configure LightBox2.
http://dev1.example.com/admin/config/user-interface/lightbox2
General > Lightbox2 lite > Show image caption
# Configure URL aliases.
# http://drupal.org/node/1266222
http://dev1.example.com/admin/config/search/path/patterns
# Replace Drupal 6 pattern paths with Drupal 7 replacement patterns.
[title-raw] -> [node:title]
[nid] -> [node:nid]
[vocab-raw] -> [term:name]
[catpath-raw] -> [term:url]
[user-raw] -> [user:name]
[blog-raw] -> [user:name]
# Check the roles assigned to text formats (check alongside Drupal 6 /admin/settings/filters).
http://dev1.example.com/admin/config/content/formats
----
DRUPAL 7 PANEL PAGES.
# Import stylizer settings.
http://dev1.example.com/admin/structure/stylizer/import
# Import mini-panels (override existing).
http://dev1.example.com/admin/structure/mini-panels/import
# Enable node add/edit form.
# Import node add/edit form.
http://dev1.example.com/admin/structure/pages/edit/node_edit
# Import node view variants (delete existing variants).
http://dev1.example.com/admin/structure/pages/edit/node_view
# Delete 'allotment' home page (delete existing landing page variant).
http://dev1.example.com/admin/structure/pages/edit/page-allotment_home_page
# Configure contact form.
# Create custom content forms.
# Adds specific titles for 'contact' pages (for example: Paccombe Training Centre).
http://dev1.example.com/admin/structure/contact/settings
<strong>By post</strong>
<p>The Donkey Sanctuary
<br/>
Sidmouth
<br/>
Devon
<br/>
EX10 0NU</p>
<strong>By telephone</strong>
<p>+44 (0) 1395 578222 (8.30 am to 4.30 pm, Monday - Friday)</p>
<strong>By fax</strong>
<p>+44 (0) 1395 579266</p>
<strong>By email</strong>
<p>If you would like to send <strong>@category</strong> a message, please use the contact form below.</p>
# Replace instances of old legacy href code (/trainingcourses).
http://dev1.example.com/trainingcourses
- If you are interested in attending one of the courses, please
<a href="?q=contact&category=Paccombe%20Training%20Centre&subject=Training Centre courses">contact us</a> or telephone 01395 597644.
+ If you are interested in attending one of the courses, please <a title="Contact us" href="/contact/Paccombe Training Centre">contact us</a>.
# Example of custom content form (eg telephone number - 01395 597644 -replaces switchboard number).
http://dev1.example.com/admin/structure/contact/edit/27
<p><strong>By post</strong></p>
<p>The Donkey Sanctuary
<br/>Sidmouth
<br/>Devon
<br/>EX10 0NU</p>
<p><strong>By telephone</strong></p>
<p>+44 (0) 1395 597644 (8.30 am to 4.30 pm, Monday - Friday)</p>
<p><strong>By fax</strong></p>
<p>+44 (0) 1395 579266</p>
<p><strong>By email</strong></p>
<p>If you would like to send <strong>@category</strong> a message, please use the contact form below.</p>
----
# DRUPAL 7 USER PROFILE DISPLAYS.
# Profile module has been deprecated as of Drupal 7 but still accessible.
# http://drupal.org/node/1008870
# However views using profile fields are broken.
# Panel for node view (blog) broken.
# Delete all views and import from 'seven'.
http://dev1.example.com/admin/structure/views
# Add new fields to 'people' account settings.
http://dev1.example.com/admin/config/people/accounts/fields
Label: Photo (Use existing field)
Machine name: image_field
Field type: image
Label: About my Blog
Machine name: my_blog
Field type: long text
Label: Blog URL
Machine name: blog_url
Field type: text
# Manage display fields.
http://dev1.example.com/admin/config/people/accounts/display
# Add new field data to user accounts.
http://dev1.example.com/user/3/edit
Photo: JLT... todo
Blogger name: Jenifer Tucker
About by blog: Jenifer works at the Sanctuary as our Web Developer. She has loved donkeys ever since she can remember as well
as being a donkey owner. One of her donkeys, Little Pippa, is here at the Sanctuary so if you're visiting, drop by to say hello and give Little Pippa a cuddle!
Blog URL: http://www.thedonkeysanctuary.org.uk/blogs/jenifer-tuck
# Check blog display.
http://dev1.example.com/blog/5689
----
# DRUPAL 7 FILEFIELD PATHS.
# Create filefield path directories.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7/files/donkeys
mkdir blogs
mkdir blogs/bloggers
mkdir countries
mkdir events
mkdir farms
mkdir foster
mkdir multimedia
mkdir pages
mkdir partnerships
mkdir press
mkdir stories
mkdir vacancies
popd
# Set file permissions.
pushd /var/local/donkeys-git-dev1/drupal-7
chgrp -R apache files
chmod -R g+w files
popd
pushd /var/local/donkeys-git-dev1/drupal-7/files
chmod o-w donkeys
find . -type d -exec chmod g+ws '{}' \;
popd
----------------------------
JLT working on this area....
----------------------------
# Enable users to add pictures.
http://drupal.org/node/22271
# Modify 'bloggers' view to use User: Picture
# Remove 'Photo' imagefield.
# Use pictures in post
http://dev1.example.com/admin/appearance/settings
# Content type documents.
http://dev1.example.com/admin/structure/types/manage/corporate-partnership/fields/field_document
# Content type photos.
http://dev1.example.com/admin/structure/types/manage/corporate-partnership/fields/field_image_field
{{{
# Document fieldfield path settings.
File path: partnerships
File name: [node:nid]-[current-date:raw]-[file:ffp-name-only-original].[file:ffp-extension-original]
[node:nid]-[current-date:raw].[file:ffp-extension-original]
# File name options.
Enable: Transliterate
# File name options.
Enable: Transliterate
}}}
# Add documents to a 'vacancy' content type.
http://dev1.example.com/node/6402
{{{
[admin@server~]#
# Check the files are formatted.
pushd /var/local/donkeys-git-dev1/drupal-7/files/donkeys/vacancies
ls -al
-rw-rw-r-- 1 apache apache 339016 Jan 16 12:14 6402-1358338481-application_form_ds_60.pdf
-rw-rw-r-- 1 apache apache 210944 Jan 16 12:14 6402-1358338481-application_form_word_2.doc
-rw-rw-r-- 1 apache apache 236756 Jan 16 12:14 6402-1358338481-application_pack_-_centre_assistant_groom.pdf
popd
}}}
# Required for each content type using the 'document' field.
http://dev1.example.com/admin/structure/types/manage/event/fields/field_document
http://dev1.example.com/admin/structure/types/manage/page/fields/field_document
http://dev1.example.com/admin/structure/types/manage/vacancy/fields/field_document
etc
JLT ... Testing 20130102 - got this error on dev1 (not on seven).
Warning: Invalid argument supplied for foreach() in filefield_paths_entity_update()
(line 248 of /var/local/donkeys-git-dev1/drupal-7/sites/all/modules/filefield_paths/filefield_paths.module).
----
# DRUPAL 7 IMAGAGECACHE ACTIONS CONFIGURATION.
# Enable Imagecache Canvas Actions.
http://dev1.example.com/admin/modules
# JLT TODO... Configure
# Add 'copyright' notice to images.
----
# DRUPAL 7 CALENDAR.
# TODO... Try one calendar to display different categories (dropdown list of categories).
# Delete separate event views.
# What's on at Sidmouth
# What's on at each of the riding therapy centres
# Training courses
http://dev1.example.com/calendar
----
# DRUPAL 7 CORE AND CONTRIBUTED MODULE UPDATES.
# Ensure all contributed modules are up to date.
[admin@server~]
pushd /var/local/donkeys-git-dev1/drupal-7
# Clear drush cache.
drush cc drush
# Check available updates for enabled modules (automatically runs database updates if required).
drush -l sanctuary pm-update
# Remove robots.txt file if core updated.
mv robots.txt robots.txt.20121220
popd
----
# DRUPAL 7 FULL LIST OF ADMINISTRATIVE TASKS FOR EACH MODULE.
http://dev1.example.com/admin/index
----
# DRUPAL 7 CHECKLIST.
TODO...
1. Admin > taxonomy
Seems to have migrated from Drupal 6 to Drupal 7
Tidy up URLs ---> /taxonomy/vocalulary > /taxonomy/human_resources
Similar to CIL style.
http://dev1.example.com/admin/structure/taxonomy
Go to the Manage Fields tab of any fieldable entity (such as a content type, taxonomy term, or user).
http://drupal.org/project/term_reference_tree
http://dev1.example.com/admin/structure/types/manage/blog/fields
New field: Term Reference
Field type: Term Reference
Widget: Term reference tree
Test.
http://dev1.example.com/node/add/blog
2. Check all views/configure.
3. Copy personal profile fields of bloggers into new content fields in user account settings.
http://dev1.example.com/user/3/edit
----
TODO... REQUIRES CONFIGURING
Some user time zones have been emptied and need to be set to the correct values. Use the new time zone options to choose whether to remind [warning]
users at login to set the correct time zone.
The default time zone has been set to Europe/London. Check the date and time configuration page to configure it correctly. [warning]
The contact form information setting was migrated to a custom block and set up to only show on the site-wide contact page. The block was set[status]
to use the default text format, which might differ from the HTML based format used before. Check the block and ensure that the output is
right.
The user registration guidelines were migrated to a custom block and set up to only show on the user registration page. The block was set to[status]
use the default text format, which might differ from the HTML based format used before. Check the block and ensure that the output is right.
The site mission was migrated to a custom block and set up to only show on the front page in the highlighted content region. The block was [status]
set to use the default text format, which might differ from the HTML based format used before. Check the block and ensure that the output is
right. If your theme does not have a highlighted content region, you might need to relocate the block.
The footer message was migrated to a custom block and set up to appear in the footer. The block was set to use the default text format, [status]
which might differ from the HTML based format used before. Check the block and ensure that the output is right. If your theme does not have
a footer region, you might need to relocate the block.
A new Plain text format has been created which will be available to all users. You can configure this text format on the text format [status]
configuration page.
The content type imagefield had uploads disabled but contained uploaded file data. Uploads have been re-enabled to migrate the existing [status]
data. You may delete the "File attachments" field in the imagefield type if this data is not necessary.
The new "View the administration theme" permission is required in order to view your site's administration theme. This permission has been [status]
automatically granted to the following roles: chief editor, deputy admin, developer, ixis-admin. You can grant this permission to other
roles on the permissions page.
The widgets for repeating dates have changed. Please check the Display Fields page for each content type that has repeating date fields and [warning]
confirm that the right widget has been selected.
----
Special notes about some of the projects you are using:
cck : This project requires data migration or other special processing.
Please see http://drupal.org/project/cck and http://drupal.org/node/895314 for
more information on how to do this.
date : This project requires data migration or other special processing.
The d6 version of the date_api module in the date project defines a table called
date_formats, which is also defined by system/system.install schema in d7.
If this problem has not been fixed yet, then the updatedb function will
fail, and it will not be possible to upgrade to d7. If this happens, disable and
uninstall the date_api module before running site-upgrade
(i.e. add '--uninstall=date_api' to site-upgrade call). See http://drupal.org/node/1013034.
token : This project requires data migration or other special processing.
In Drupal 7, the contrib token module handles UI, as well as field and profile
tokens; all other functionality has been migrated to core. You may encounter problems
when enabling the token module during a major upgrade; see http://drupal.org/node/1477932.
----
# THE END.