[2] An even better project (rjify4y564xaa)
If your working directory is inside a local checkout of your project repository,
your project and environment are detected automatically.
You can always specify the project and environment in two ways:
As arguments for the command:
In multi-app projects, this applies also to selecting the right app
(the environment variable would be PLATFORM_APPLICATION_NAME
).
If you check out a project via Git directly and not using the platform get
command,
the CLI may be unable to determine what project it’s in.
You might run a CLI command from within a project directory you’ve checked out and get an error like this:
[RootNotFoundException] Project root not found. This can only be run from inside a project directory.
Then the CLI hasn’t been able to determine the project to use.
To fix this, run:
Replace PROJECT_ID
with the ID of your project.
You can find that in the Console or by running platform projects
to list all accessible projects.
Some CLI commands (especially many within the environment
namespace) have some overlap with Git commands.
Generally, they offer more options than the Git commands alone.
For example, platform push
offers options such as --activate
(to activate an environment before pushing)
and --no-wait
(so you can continue working without waiting for the push to complete).
For all of them, you don’t need to configure a Git remote.
It’s enough to have a project ID.
An example of how this affects commands is that when you run platform merge
,
it doesn’t affect your local codebase.
You don’t even need the code locally.
The code is only merged between environments remotely.
You can customize how the CLI operates and what it returns with a configuration file (~/.platform/config.yaml
)
or environment variables.
For details, see the customization instructions on GitHub.
You might want to use the CLI in a script to automate repetitive tasks such as synchronizing your files locally.
In such cases, you want to customize the CLI to bypass any confirmation questions.
You can set the answer to every question as yes
using the PLATFORMSH_CLI_NO_INTERACTION
environment variable.
For instance, to locally sync every mount point for your app named app
, you could use this command:
export PLATFORM_PROJECT=my-project;
export PLATFORM_BRANCH=main;
export PLATFORMSH_CLI_NO_INTERACTION=1;
platform mount:download --all --app app --target local-backup
The CLI provides tab autocompletion for commands, options, and some values (your projects, valid regions).
To enable autocompletion, follow this step:
You can use the Platform.sh CLI to run commands on your container.
You can use any command you’ve added in dependencies
or a hook.
The syntax looks like the following:
For example, to run a specific Python script named my-script.py
on your current environment,
run the following command:
To upgrade from the legacy CLI, follow the installation instructions.
Once you’ve installed the latest version, the CLI guides you through removing the installed legacy CLI.