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.
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.
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
remote databases:
drush sql-sync @[source] @[target]
After the import completes, run the drush @[target] cr
command to
rebuild caches.
For more information, see Use Drush to Sync Your Drupal Installations Between Multiple Environments on dev.acquia.com.
To import a database using command-line tools:
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 10, 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.
With source Drush alias available, run the following command:
drush @[source] sql-dump --gzip > mysite.sql.gz
Drush saves the mysite.sql.gz
site archive file relative to your
current 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 > mysite.sql.gz
For more information, see About Drupal multisite installations.
Run the following command:
mysqldump -u [db_username] -p[db_password] [db_name] | gzip > [db_filename].sql.gz
where:
[db_username]
is the account user name that manages the database.[db_password]
is the password for the database account.[db_name]
is your Drupal database.[db_filename]
is the path and file name of the backed up
database’s dump file. Be sure to keep the .sql.gz
extension.After you create the database dump file from your existing database, import the database dump file into the new database.
To import a database dump file into your subscription on Cloud Platform:
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.
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.
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.
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
).