Jump to content

CAPipedia Sandbox:Updating CAPipedia: Difference between revisions

From CAPipedia Sandbox
No edit summary
m Protected "CAPipedia:Updating CAPipedia" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
* Test the new version deployment prior to upgrading in production
== Review the upgrading manual document ==


1. Download and uncompress the new version's distribution from mediawiki.org
Review https://www.mediawiki.org/wiki/Manual:Upgrading before performing the update to note any special callouts to be considered during the update process.
2. Run the `refresh-sandbox.sh` script from the user home directory
3. Replace the distribution files using the command: `cp -pR mediawiki-[version]/* sandbox.capmembers.wiki`
4. From the `sandbox.capmembers.wiki` directory, run the command: `php maintenance/run.php update`
5. Browse to https://sandbox.capmembers.wiki/wiki/Special:Version and verify the upgrade took effect and the page fully loads without errors
6. Check that the following operations work as expected:


a. Viewing pages
== Test the new version deployment prior to upgrading in production ==
b. Editing pages
c. Uploading a file


* Backup the production site
# Download and uncompress the new version's distribution from https://mediawiki.org
# Run this command from the user home directory: <pre>sh refresh-sandbox.sh</pre>
# Replace the distribution files using the command: <pre>cp -pR mediawiki-[version]/* sandbox.capmembers.wiki</pre>
# From the <code>sandbox.capmembers.wiki</code> directory, run the command: <pre>php maintenance/run.php update</pre>
# Browse to https://sandbox.capmembers.wiki/wiki/Special:Version and verify the upgrade took effect (version shown on the page matches the distribution) and the page fully loads without errors
# For each skin and extension that has a Git hash for its version, go to that skin or extension directory and run the following commands: <pre>git pull</pre><pre>git checkout REL[minor_version] (e.g., REL1_43)</pre>
# Check that the following operations work as expected:
## Viewing pages
## Editing pages
## Uploading a file


1. Place production site in read only mode by uncommenting the `$wgReadOnly` variable in the `LocalSettings.php` file of the old directory
== Backup the production site ==
2. Return to the user home directory
3. Run `backup-prod.sh`


* Create a new production site
# Place production site in read only mode by uncommenting the <code>$wgReadOnly</code> variable in the <code>LocalSettings.php</code> file of the '''capipedia-[old_version]''' directory
# Return to the user home directory
# Run this command: <pre>sh backup-prod.sh</pre>


1. Duplicate the production folder using the command: `cp -pR capipedia-[old_version] capipedia-[new_version]`
== Create a new production site ==
2. Replace the distribution files using the command: `cp -pR mediawiki-[version]/* capipedia-[new_version]`
3. From the [https://panel.dreamhost.com DreamHost Web Panel], browse to **Websites**/**MySQL Databases**
4. Create a new database with a database name that matches the new directory name and new username of `cap_wiki_root`
5. Upload the backup database file to the database by running the command: `mysql -ucap_wiki_root -p -hmysql.sandbox.capmembers.wiki [new_db_name] < [backup_sql_file]`
6. Change the `$wgDBname` variable in the `LocalSettings.php` file of the new directory to the new database name
7. From the new capipedia version directory, run the command: `php maintenance/run.php update`


* Switch the production hostname to the new site
# Duplicate the production folder using the command: <pre>cp -pR capipedia-[old_version] capipedia-[new_version]</pre>
# Replace the distribution files using the command: <pre>cp -pR mediawiki-[version]/* capipedia-[new_version]</pre>
# From the [https://panel.dreamhost.com DreamHost Web Panel], browse to '''Websites'''/'''MySQL Databases'''
# Create a new database with a database name that matches '''capipedia-[new_version]''' and new username of <code>cap_wiki_root</code> (leave password blank)
# Upload the backup database file to the newly created database by running the command: <pre>sh load-database.sh [new_db_name] [backup_sql_file]</pre>
# Obtain the password from the <code>LocalSettings.php</code> file
# Change the <code>$wgDBname</code> variable in the <code>LocalSettings.php</code> file in the '''capipedia-[new_version]''' directory to the new database name
# From the '''capipedia-[new_version]''' directory, run the command: <pre>php maintenance/run.php update</pre>


1. From the [https://panel.dreamhost.com DreamHost Web Panel], browse to **Websites**/**Manage Websites**/**Settings**/**Directories: Modify** and change the root web directory to the new version
== Retarget the production hostname to the new site ==
2. Wait for **Updating Web Options...** to complete
3. Browse to https://sandbox.capmembers.wiki/wiki/Special:Version and verify the upgrade took effect and the page fully loads without errors
4. Place production site back in write mode by commenting the `$wgReadOnly` variable in the `LocalSettings.php` file of the new directory
4. Check that the following operations work as expected:


a. Viewing pages
# From the [https://panel.dreamhost.com DreamHost Web Panel], browse to '''Websites'''/'''Manage Websites'''/'''Settings'''/'''Directories: Modify''' and change the root web directory to '''capipedia-[new_version]'''
b. Editing pages
# Wait for '''Updating Web Options...''' to complete
c. Uploading a file
# Browse to https://sandbox.capmembers.wiki/wiki/Special:Version and verify the upgrade took effect (version shown on the page matches the distribution) and the page fully loads without errors
# For each skin and extension that has a Git hash for its version, go to that skin or extension directory and run the following commands: <pre>git pull</pre><pre>git checkout REL[version] (e.g., REL1_43)</pre>
# Place production site back in write mode by commenting the <code>$wgReadOnly</code> variable in the <code>LocalSettings.php</code> file of the '''capipedia-[new_version]''' directory
# Check that the following operations work as expected:
## Viewing pages
## Editing pages
## Uploading a file
 
== Clean up server home directory ==
 
# Delete the '''mediawiki-[version]''' folder and .gz distribution file
# Delete the '''capipedia-[old_version]_backup''' .gz and .sql files
 
== Update local-attributes.sh ==
 
# Edit the <code>local-attributes.sh</code> file and change the PROD_DIR to '''capipedia-[new_version]''' and PROD_DB_NAME to the new version's database name
 
== Final decommission of old version ==
 
# After the warranty period (no less than 2 weeks), delete the '''capipedia-[old_version]''' directory and database

Latest revision as of 15:09, 17 April 2025

Review the upgrading manual document

Review https://www.mediawiki.org/wiki/Manual:Upgrading before performing the update to note any special callouts to be considered during the update process.

Test the new version deployment prior to upgrading in production

  1. Download and uncompress the new version's distribution from https://mediawiki.org
  2. Run this command from the user home directory:
    sh refresh-sandbox.sh
  3. Replace the distribution files using the command:
    cp -pR mediawiki-[version]/* sandbox.capmembers.wiki
  4. From the sandbox.capmembers.wiki directory, run the command:
    php maintenance/run.php update
  5. Browse to https://sandbox.capmembers.wiki/wiki/Special:Version and verify the upgrade took effect (version shown on the page matches the distribution) and the page fully loads without errors
  6. For each skin and extension that has a Git hash for its version, go to that skin or extension directory and run the following commands:
    git pull
    git checkout REL[minor_version] (e.g., REL1_43)
  7. Check that the following operations work as expected:
    1. Viewing pages
    2. Editing pages
    3. Uploading a file

Backup the production site

  1. Place production site in read only mode by uncommenting the $wgReadOnly variable in the LocalSettings.php file of the capipedia-[old_version] directory
  2. Return to the user home directory
  3. Run this command:
    sh backup-prod.sh

Create a new production site

  1. Duplicate the production folder using the command:
    cp -pR capipedia-[old_version] capipedia-[new_version]
  2. Replace the distribution files using the command:
    cp -pR mediawiki-[version]/* capipedia-[new_version]
  3. From the DreamHost Web Panel, browse to Websites/MySQL Databases
  4. Create a new database with a database name that matches capipedia-[new_version] and new username of cap_wiki_root (leave password blank)
  5. Upload the backup database file to the newly created database by running the command:
    sh load-database.sh [new_db_name] [backup_sql_file]
  6. Obtain the password from the LocalSettings.php file
  7. Change the $wgDBname variable in the LocalSettings.php file in the capipedia-[new_version] directory to the new database name
  8. From the capipedia-[new_version] directory, run the command:
    php maintenance/run.php update

Retarget the production hostname to the new site

  1. From the DreamHost Web Panel, browse to Websites/Manage Websites/Settings/Directories: Modify and change the root web directory to capipedia-[new_version]
  2. Wait for Updating Web Options... to complete
  3. Browse to https://sandbox.capmembers.wiki/wiki/Special:Version and verify the upgrade took effect (version shown on the page matches the distribution) and the page fully loads without errors
  4. For each skin and extension that has a Git hash for its version, go to that skin or extension directory and run the following commands:
    git pull
    git checkout REL[version] (e.g., REL1_43)
  5. Place production site back in write mode by commenting the $wgReadOnly variable in the LocalSettings.php file of the capipedia-[new_version] directory
  6. Check that the following operations work as expected:
    1. Viewing pages
    2. Editing pages
    3. Uploading a file

Clean up server home directory

  1. Delete the mediawiki-[version] folder and .gz distribution file
  2. Delete the capipedia-[old_version]_backup .gz and .sql files

Update local-attributes.sh

  1. Edit the local-attributes.sh file and change the PROD_DIR to capipedia-[new_version] and PROD_DB_NAME to the new version's database name

Final decommission of old version

  1. After the warranty period (no less than 2 weeks), delete the capipedia-[old_version] directory and database