Cloud Platform

Importing your database

This page describes manually importing the database of an existing Drupal application into Cloud Platform, as part of the process of manually importing the entire application. For information about other methods of importing an application, see Importing an existing application.

Important

The process described on this page requires you to install the Drush aliases integration for Cloud Platform before proceeding.

Note

The current Drupal version requires Drush version 11 or later. Newer versions of Drush, that is, version 11 and later, must be installed via Composer. Acquia does not manage the update to the newer versions. For more information, see About Drush on Cloud Platform.

Synchronize databases

If you have Drush configured for the source version of your application and your Acquia environments, you can use drush to synchronize them.

To import a single website’s database from a drush alias source, use the drush sql:sync command, replacing [source] and [target] with the Drush aliases for your source and target databases. Because Drush 9 or later no longer supports two remote targets, you must arrange for one Drush alias to be local by running the command from either application.

drush sql:sync @[source] @[target]

After the import completes, run drush @[target] cr command to rebuild caches.

For more information, see Use Drush to Sync Your Drupal Installations Between Multiple Environments.

Dump and restore databases

To import a database using command-line tools:

  1. Create a dump file of your database.

  2. Import the dump file into your new database.

  3. Set up database connections.

Creating a database dump file

To export the data stored in your website’s database, create a database dump file from the command line by running either Drush or mysqldump from your Drupal directory:

In Drush 9 and later, a dump can’t be consistently made from aliases because it ignores output redirection. Instead, go to the source Drupal directory, and then run the following command:

drush @[source] sql:dump --gzip --result-file=../mysite.sql

Drush saves the mysite.sql.gz site archive file relative to your current Drupal docroot. If needed, move the file to a location that has access to your target environment.

If the command returns error messages, ensure Drush has the required permissions to save files in the docroot directory.

For more information, see the Drush 8 documentation.

If you’re not sourcing from the default site, you must specify a matching URI to allow Drush to select the correct site database.

drush @[source] sql:dump --gzip --uri=my.source.com --result-file=../mysite.sql

For more information, see About Drupal multisite installations.

After you create the database dump file from your existing database, import the database dump file into the new database.

Importing your database dump file

To import a database dump file into your subscription on Cloud Platform:

  1. Connect to your Cloud Platform infrastructure with SSH.

  2. Upload your database backup to Cloud Platform, using commands similar to the examples provided at Downloading backups with command line tools. Be sure to alter the command to upload from your local computer to Cloud Platform.

  3. Import your database dump file using one of the following methods:

    To import a database dump file to the default site, use the drush sql:cli command, replacing [target] with the Drush alias for your target site:

    gunzip -c [/path/to/db/dump/file] | drush @[target] sql:cli
    

    If you’re not targeting the default site, you must include URI as a CLI option or in a custom Drush alias:

    gunzip -c [/path/to/db/dump/file] | drush @[target] sql:cli --uri=my.fake.site.com
    

    For more information, see About Drupal multisite installations.

You can now import files using Secure File Transfer Protocol (SFTP), Secure Copy (SCP), or rsync.

Variable legend

The following legend contains the values of the variables used in the previous commands.

  • [site]: The name of your application on Cloud Platform.

  • [env]: The environment into which you are importing your database. Acceptable values are dev (Development), test (Staging), and prod (Production).

  • [db_name]: The name of your database. Use the database name shown on the Databases page for the environment, not an environment-specific name. For example, if your sitename is example, your default database name will probably be example, and you should use that rather than an environment-specific name (such as exampledev or exampletest).