Replacing strings in the database
There is a tool provided with Moodle to replace strings in your database with another value. This is very useful for things such as site address or domain name changes, and changes from non-SSL (http) to SSL (https).
The tool can be accessed via the following relative URL as a site administrator:
/admin/tool/replace/
While you can certainly run it from the browser site, it can timeout and cause problems to do so. Therefore the CLI version is a far better option and available in the moodle code tree under: /admin/tool/replace/cli/
php admin/tool/replace/cli/replace.php
Search and replace text throughout the whole database.
Options:
--search=STRING String to search for.
--replace=STRING String to replace with.
--shorten Shorten result if necessary.
--non-interactive Perform the replacement without confirming.
-h, --help Print out this help.
So lets say you change your site from http://yoursite.com
to https://yoursite.com
you could run it like so:
php admin/tool/replace/cli/replace.php
--search=http://yoursite.com --replace=https://yoursite.com --non-interactive
This will scan through tables and give you results in the console as it is going. The non-interactive flag prevents prompting (assuming you are comfortable with the change). If you aren’t you probably shouldn’t use the tool or at least use it on a test site first. The shorten result flag shouldn’t be necessary in most cases.
No Comments