J4.x

CLI Database Exporter Importer

From Joomla! Documentation

Revision as of 19:01, 29 November 2022 by Ceford (talk | contribs) (Remove --all it is not used in J4.2.5 and throws an error)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎italiano • ‎português do Brasil • ‎中文(台灣)‎
Joomla! 
4.0

About[edit]

Before updating Joomla! or installing a third party extension, it is strongly recommended that you back up your site.
The Joomla! 4.x Console provides commands for exporting (backing up) and importing (restoring) your Joomla! database. Note that it doesn't backup your filesystem which should be done separately


Requirements[edit]

To use these commands, you need a secured shell access (SSH) to your host on which the PHP CLI (Command Line Interface) is installed. Consider to have basic knowledge of using shell commands.

Instructions[edit]

Log into your host and go to the root folder of your site.
I recommend to use the Joomla 'tmp' folder in your <folder_path> to have read/write permissions.

  • List all available commands of the Joomla Console:
    php cli/joomla.php list
  • Export the database to the folder:
    php cli/joomla.php database:export --folder <folder_path>
  • Import the database from folder:
    php cli/joomla.php database:import --folder <folder_path>

You can also:

  • Export the database as a .zip file:
    php cli/joomla.php database:export --zip
  • Export a table:
    php cli/joomla.php database:export --table <table_name>
  • Export a table as a .zip file:
    php cli/joomla.php database:export --table <table_name> --zip
  • Import a table:
    php cli/joomla.php database:import --table <table_name>
  • If you need help:
    php cli/joomla.php database:export --help php cli/joomla.php database:import --help


Back up and restore[edit]

To make a full backup (with folders, files and database) of your site, you can execute these commands:

  1. Archive your Joomla root directory:
    tar --exclude='./tmp/joomla_bak.*' -zcvf tmp/joomla_bak.tgz . > tmp/joomla_bak.log
  2. Export all the Joomla database:
    php cli/joomla.php database:export --all --folder tmp/db_bak

And to restore it, execute these commands:

  1. Import all the Joomla database:
    php cli/joomla.php database:import --all --folder tmp/db_bak
  2. Extract the archive:
    tar --recursive-unlink -xvf tmp/joomla_bak.tgz .