Jump to content

CAPipedia Sandbox:Updating CAPipedia: Difference between revisions

From CAPipedia Sandbox
No edit summary
No edit summary
Line 1: Line 1:
== Test the new version deployment prior to upgrading in production ==
== Test the new version deployment prior to upgrading in production ==


# Download and uncompress the new version's distribution from mediawiki.org
# Download and uncompress the new version's distribution from https://mediawiki.org
# Run the `refresh-sandbox.sh` script from the user home directory
# Run this command from the user home directory: <pre>sh refresh-sandbox.sh</pre>
# Replace the distribution files using the command: `cp -pR mediawiki-[version]/* sandbox.capmembers.wiki`
# Replace the distribution files using the command: <pre>cp -pR mediawiki-[version]/* sandbox.capmembers.wiki</pre>
# From the `sandbox.capmembers.wiki` directory, run the command: `php maintenance/run.php update`
# 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 and the page fully loads without errors
# 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
# Check that the following operations work as expected:
# Check that the following operations work as expected:
## Viewing pages
## Viewing pages
Line 13: Line 13:
== Backup the production site ==
== Backup the production site ==


# Place production site in read only mode by uncommenting the `$wgReadOnly` variable in the `LocalSettings.php` file of the old directory
# 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
# Return to the user home directory
# Run `backup-prod.sh`
# Run this command: <pre>sh backup-prod.sh</pre>


== Create a new production site ==
== Create a new production site ==


# Duplicate the production folder using the command: `cp -pR capipedia-[old_version] capipedia-[new_version]`
# Duplicate the production folder using the command: <pre>cp -pR capipedia-[old_version] capipedia-[new_version]</pre>
# Replace the distribution files using the command: `cp -pR mediawiki-[version]/* capipedia-[new_version]`
# 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**
# From the [https://panel.dreamhost.com DreamHost Web Panel], browse to '''Websites'''/'''MySQL Databases'''
# Create a new database with a database name that matches the new directory name and new username of `cap_wiki_root`
# 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 database by running the command: `mysql -ucap_wiki_root -p -hmysql.sandbox.capmembers.wiki [new_db_name] < [backup_sql_file]`
# Upload the backup database file to the newly created database by running the command: <pre>mysql -ucap_wiki_root -p -hmysql.sandbox.capmembers.wiki [new_db_name] < [backup_sql_file]</pre>
# Change the `$wgDBname` variable in the `LocalSettings.php` file of the new directory to the new database name
# Obtain the password from the <code>LocalSettings.php</code> file
# From the new capipedia version directory, run the command: `php maintenance/run.php update`
# 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>


== Switch the production hostname to the new site ==
== Retarget the production hostname to the new site ==


# 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
# 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]'''
# Wait for **Updating Web Options...** to complete
# Wait for '''Updating Web Options...''' to complete
# Browse to https://sandbox.capmembers.wiki/wiki/Special:Version and verify the upgrade took effect and the page fully loads without errors
# 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
# Place production site back in write mode by commenting the `$wgReadOnly` variable in the `LocalSettings.php` file of the new directory
# 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:
# Check that the following operations work as expected:
## Viewing pages
## Viewing pages
## Editing pages
## Editing pages
## Uploading a file
## 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
== Final decommission of old version ==
# After the warranty period (no less than 2 weeks), delete the '''capipedia-[old_version]''' directory and database

Revision as of 11:45, 16 April 2025

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. 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:
    mysql -ucap_wiki_root -p -hmysql.sandbox.capmembers.wiki [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. Place production site back in write mode by commenting the $wgReadOnly variable in the LocalSettings.php file of the capipedia-[new_version] directory
  5. 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

Final decommission of old version

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