Upsun Integration¶
DDEV provides integration with the Upsun by Platform hosting system, allowing Upsun users to easily download database and files from Upsun to a local DDEV-managed environment.
Tip
Consider using ddev add-on get ddev/ddev-upsun (ddev-upsun) for more complete Upsun integration.
DDEV’s Upsun integration pulls databases and files from an existing Upsun site/environment into your local system so you can develop locally.
Upsun Global Configuration¶
You need to obtain and configure an API token first. This only needs to be done once.
- Login to the Upsun Dashboard and go to My Profile → API Tokens. Create an API token DDEV can use.
-
Add the API token to the
web_environmentsection in your global DDEV configuration at$HOME/.ddev/global_config.yaml(see global configuration directory):You can also do this with:
What if I have more than one API token?
To use multiple API tokens for different projects, add them to your per-project configuration using the
.ddev/config.local.yamlfile instead. This file is gitignored by default.
Upsun Per-Project Configuration¶
- Check out the Upsun site and configure it with
ddev config. You’ll want to useddev startand make sure the basic functionality is working. -
Add
PLATFORM_PROJECTandPLATFORM_ENVIRONMENTvariables to your project, or rely on automatic derivation when possible.-
Automatic derivation (no action required):
- If your repository contains
.upsun/local/project.yamlwith anid:key, DDEV will derivePLATFORM_PROJECTfrom that file. - If your local Git branch name corresponds to the Upsun environment name, DDEV will derive
PLATFORM_ENVIRONMENTfrom the current Git branch. - In typical setups where both
.upsun/local/project.yamland a matching Git branch exist, you do not need to setPLATFORM_PROJECTorPLATFORM_ENVIRONMENTmanually.
- If your repository contains
-
Manual configuration (only if automatic derivation is not suitable):
-
Either in
.ddev/config.yamlor a.ddev/config.*.yamlfile: -
Or with a command from your terminal:
-
For more information about how to set environment variables for containers and services see Environment Variables for Containers and Services.
-
-
Run
ddev restart. - Run
ddev pull upsun. After you agree to the prompt, the current upstream databases and files will be downloaded. - Optionally use
ddev push upsunto push local files and database to Upsun. Theddev pushcommand can potentially damage your production site, so we don’t recommend using it.
Managing Multiple Apps¶
If your environment contains more than one app, add PLATFORM_APP variable to your project:
-
Either in
.ddev/config.yamlor a.ddev/config.*.yamlfile: -
Or with a command from your terminal:
Managing Multiple Databases¶
If your project has only one database, it will automatically be pulled into and pushed from DDEV’s db database.
If your project has multiple databases, they’ll all be pulled into DDEV with their respective remote names. You can optionally designate a primary to use DDEV’s default db database, which may be useful in some cases—particularly if you’ve been using the default solo-database behavior and happened to add another one to your project.
You can designate the primary database using the PLATFORM_PRIMARY_RELATIONSHIP environment variable:
You can also do the same thing by running ddev pull upsun and using the --environment flag:
Usage¶
ddev pull upsunwill connect to Upsun to download database and files. To skip downloading and importing either file or database assets, use the--skip-filesand--skip-dbflags.- If you need to change the
upsun.yamlrecipe, you can change it to suit your needs, but remember to remove the#ddev-generatedline from the top of the file.