This article covers two migration paths: the free HOSTDOG migration service where our team handles everything for you, and the self-service migration — a step-by-step process of exporting your database and files, transferring them to HOSTDOG, and updating your Drupal configuration. HOSTDOG has been handling Drupal migrations since 2002.
Option 1: Free migration by HOSTDOG
HOSTDOG offers free website migrations for all new customers moving to any shared hosting plan. Our team handles the entire process — database export, file transfer, and DNS cutover — with minimal disruption to your site. This is the recommended option for most users.
To request a free migration:
- Navigate to the HOSTDOG homepage and click the Log in button to access your client area.
- Open a support ticket requesting a Drupal migration. Include your current hosting provider details, your domain name, and your preferred migration window.
- Our team will schedule the migration, carry out the transfer, and notify you when complete — typically within 24 hours.
See how to request a free website migration for full details on the process.
Option 2: Self-service migration
If you prefer to manage the migration yourself, follow the steps below. You'll need SSH or FTP access to your current hosting and a working HOSTDOG account with an active hosting plan.
On your current hosting, export the Drupal database as a .sql file. You can do this via Drush:
drush sql-dump --result-file=drupal-backup.sql
Alternatively, use phpMyAdmin on your current host: select your Drupal database, click Export, choose SQL format, and download the file. See how to import/export a database via phpMyAdmin.
Download the entire Drupal site directory from your current hosting. This includes:
- All core, module, and theme files
sites/default/files/— your uploaded media and generated filessites/default/settings.php— your current configuration (for reference)
Use FTP, SFTP, or your current host's File Manager to download everything as a .zip or .tar.gz archive.
Log in to your HOSTDOG control panel and go to MySQL Databases. Create a new database, a new database user, and assign the user to the database with All Privileges. Note the database name, username, and password. See how to create a MySQL database.
Upload the extracted Drupal files to the public_html directory of your HOSTDOG hosting account (or a subdirectory, if installing at a subdomain or subfolder). You can use FTP, SFTP, or the File Manager in your control panel.
In your HOSTDOG control panel, open phpMyAdmin, select the new database you created in Step 3, click the Import tab, and upload your drupal-backup.sql file. Click Go to run the import. For large databases, importing via SSH using Drush is faster:
drush sql-cli < drupal-backup.sql
Open sites/default/settings.php on your HOSTDOG server and update the database connection details to match your new HOSTDOG database:
$databases['default']['default'] = [
'database' => 'your_new_database_name',
'username' => 'your_new_db_user',
'password' => 'your_new_db_password',
'host' => 'localhost',
'driver' => 'mysql',
];
localhost. Do not use an external hostname.
Clear Drupal's cache to ensure the new configuration is picked up:
drush cr
Visit your domain using a temporary URL or by editing your local hosts file to point to the HOSTDOG server IP. Confirm that pages load, user logins work, and media files display correctly before changing DNS.
Once testing is complete, update your domain's nameservers to HOSTDOG's nameservers — ns1.hostdog.gr and ns2.hostdog.gr — or update the A record in your current DNS zone to point to your HOSTDOG server IP. DNS propagation typically takes 1–24 hours. See how to point your domain to HOSTDOG.
Troubleshooting
Open sites/default/settings.php and verify that the database name, username, password, and host (localhost) are all correct. Also ensure the database user has been assigned All Privileges in the MySQL Databases section of your control panel.
Check that the sites/default/files/ directory was fully transferred. Large file directories are often the last thing to be copied. Verify permissions are set to 755 on the files directory. If files are in a custom location, check your Drupal's file system settings at Administration → Configuration → Media → File system.
This usually means the .htaccess file was not transferred or URL rewriting (mod_rewrite) needs to be enabled. Check that .htaccess is present in your Drupal root directory. You can also rebuild Drupal's URL paths by running drush php-eval "drupal_flush_all_caches();" or via the Drupal admin under Reports → Status report → Rebuild cache.