Lando has become a popular tool in the Drupal world. It provides a layer of abstraction to Docker and
docker-compose, which are the tools that make everything work under the hood. You don’t even need to learn Docker in order to use it! Another advantage is that the configuration relies on a single
For this article, we will create a sample project using composer's
composer create-project drupal-composer/drupal-project:8.x-dev --stability dev --no-interaction
Note: This post also assumes that you are running Lando already.
In this example I will be using the following:
Exposing the ports
Lando provides a useful command named
This command exposes information about our running containers or “services” in Lando terminology. The following is example output from this command, note the service we are looking for is
external_connection key shows
localhost with the port of
32793, unfortunately this port changes from time to time, but it can be persisted by setting a fixed port in the .lando.yml file as noted in the official documentation
lando rebuild and
lando info the external port is now
Integrating with Drupal
When creating a new Drupal 8 site, use the internal Lando connection information, (which is
database instead of
localhost) for Host, as shown in the following screenshot:
PHPStorm has a plugin named Databases, which we will use to access our database. It usually comes pre-installed with PHPStorm, but if it isn't, you can go to File -> Settings -> Plugins and search for it as: Database Tools and SQL.
Using the Database plugin from PHPStorm
Go to View -> Tool Windows -> Database using the main menu.
Using the Plus sign, click on Data Source and Select MySQL
The driver will be updated occasionally, but this is an easy process managed by PHPStorm.
We fill out the form using the information provided by Lando, via the
lando info command.
37001, User, Password and Database are
drupal8. If you click on Test Connection it should return a success message like in the following screenshot.
If everything is correct just click Apply and then OK.
Now you will be able to access the database via the PHPStorm plugin, allowing you to inspect and query the database from PHPStorm.
Querying the Database with PHPStorm
Open a console:
The great advantage of using PHPStorm console is that you can use the autocomplete feature:
After the query is executed:
Importing your Database
If you want to import your databases using the
lando db-import, the dump file needs to be in the root of the repo, so the database backup is accessible within the containers. However, having your database dumps in the root of your repo is dangerous, since those files could be committed by mistake if you are using Git or any other version control.
In my case, I have the database backups in a different folder on my system: (
~/isramv/Sites/db_backpus). So instead of using
lando db-import, I manually select the
.sql file using the Run SQL Script option as shown in the following screenshot.
Note: It is important to unzip your SQL file before importing it.
Dropping all database tables
This can also be achieved with the PHPStorm Database Plugin.
For example, I usually select the first table, scroll down to the last one while holding shift and I click on the last one, then click the secondary button to open the secondary dialog and click on Drop:
After a confirmation dialog the tables will be erased from your Database.
Setting up your connection
lando info will provide the connection credentials. You can either set up a favorite connection or use Sequeal Pro’s “QuickConnect” feature:
Viewing and editing rows in our tables
In the following screenshot, I filtered the tables by typing
user in the search box, and if content icon is selected at the top the table information for user is going to be displayed:
Querying the Database with Sequel Pro
Clicking on the Query icon will display a text area with a useful autocomplete dropdown:
Importing your Lando Database
On the main menu, click on File -> Import and select your
Exporting your Lando Database
On the main menu click on File -> Export and the following dialog will help you export your database.
Dropping your tables
- Select all tables, you can use Command + A, or clicking the first element and hold Shift and selecting the last element.
- Right-click and select Delete Tables.
- Confirm the deletion of tables in the dialog.
Here's what it looks like when you right click on any of the selected tables:
MySQL/MariaDB Command line
I use MariaDB, which is compatible with MySQL, since I am on Ubuntu 18.04, but you can easily use the
mysql client. To install MariaDB client on Ubuntu, you can use:
sudo apt install mariadb-client
Please note that I am only installing the client, not the mysql server, since the mysql server is going to be running “inside” lando in a container.
mysql client installed correctly, you should see the following after you run
mysql Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Accessing the database with the CLI client
mysql --host=127.0.0.1 --port=37001 --user=drupal8 --password=drupal8 --database=drupal8
After accessing the database, you will be able to query the database from the terminal:
Importing the Database
mysql --host=127.0.0.1 --port=37001 --user=drupal8 --password=drupal8 --database=drupal8 < /path/to/your/db/folder/backup-latest.sql
I omitted the drop of tables in the mysql command line examples, because there is a more efficient way if you are working on Drupal with Lando:
lando drush sql-drop
No matter what database tool you choose, Lando is a powerful tool for developers of all levels and great for distributed teams. I highly recommend reading the documentation to take advantage of all the customizations and features it has.