The n98 magerun cli tools provides some handy tools to work with Magento from command line.
Latest Release | |
Development Branch |
DEVELOPMENT IN GIT BRANCH develop.
This software is only running with Magento 2. If you use Magento 1 please use another stable version (https://github.com/netz98/n98-magerun).
The tools will automatically be tested for multiple PHP versions ( 5.5). It's currently running in various Linux distributions and Mac OS X. Microsoft Windows is not fully supported (some Commands like db:dump or install are excluded).
There are two ways to install the tools:
wget https://files.magerun.net/n98-magerun2.phar
or if you have problems with SSL certificate:
curl -O https://files.magerun.net/n98-magerun2.phar
You can make the .phar file executable.
chmod +x ./n98-magerun2.phar
If you want to use the command system wide you can copy it to /usr/local/bin.
sudo cp ./n98-magerun2.phar /usr/local/bin/
All commands try to detect the current Magento root directory. If you have multiple Magento installations you must change your working directory to the preferred installation.
You can list all available commands by:
$ n98-magerun2.phar list
If you don't have the .phar file installed system wide you can call it with the PHP CLI interpreter:
php n98-magerun2.phar list
Global config parameters:
--root-dir Force Magento root dir. No auto detection. --skip-config Do not load any custom config. --skip-root-check Do not check if n98-magerun2 runs as root.
- Downloads Composer (if not already installed)
- Downloads Magento 2.
- Tries to create database if it does not exist.
- Installs Magento sample data.
- Starts Magento installer
- Sets rewrite base in .htaccess file
Interactive installer:
$ n98-magerun2.phar install
Unattended installation:
$ n98-magerun2.phar install [--magentoVersion[="..."]] [--magentoVersionByName[="..."]] [--installationFolder[="..."]] [--dbHost[="..."]] [--dbUser[="..."]] [--dbPass[="..."]] [--dbName[="..."]] [--installSampleData[="..."]] [--useDefaultConfigParams[="..."]] [--baseUrl[="..."]] [--replaceHtaccessFile[="..."]]
Example of an unattended Magento CE 2.0.0.0 dev beta 1 installation:
$ n98-magerun2.phar install --dbHost="localhost" --dbUser="mydbuser" --dbPass="mysecret" --dbName="magentodb" --installSampleData=yes --useDefaultConfigParams=yes --magentoVersionByName="magento-ce-2.0.0.0-dev-beta1" --installationFolder="magento2" --baseUrl="http://magento2.localdomain/"
Additionally, with --noDownload option you can install Magento working copy already stored in --installationFolder on the given database.
Provides info like the edition and version or the configured cache backends.
$ n98-magerun2.phar sys:info
Lists all store views.
$ n98-magerun2.phar sys:store:list [--format[="..."]]
Lists all websites.
$ n98-magerun2.phar sys:website:list [--format[="..."]]
$ n98-magerun2.phar cache:list
$ n98-magerun2.phar config:set [--scope[="..."]] [--scope-id[="..."]] [--encrypt] path value
- Arguments:
- path The config path value The config value
- Options:
--scope The config value's scope (default: "default" | Can be "default", "websites", "stores") --scope-id The config value's scope ID (default: "0") --encrypt Encrypt the config value using crypt key
$ n98-magerun2.phar config:get [--scope="..."] [--scope-id="..."] [--decrypt] [--format[="..."]] [path]
- Arguments:
- path The config path
- Options:
--scope The config value's scope (default, websites, stores) --scope-id The config value's scope ID --decrypt Decrypt the config value using local.xml's crypt key --update-script Output as update script lines --magerun-script Output for usage with config:set --format Output as json, xml or csv - Help:
- If path is not set, all available config items will be listed. path may contain wildcards (*)
Example:
$ n98-magerun2.phar config:get web/* --magerun-script
$ n98-magerun2.phar config:delete [--scope[="..."]] [--scope-id[="..."]] [--all] path
- Arguments:
- path The config path
- Options:
--scope The config scope (default, websites, stores) --scope-id The config value's scope ID --all Deletes all entries of a path (ignores --scope and --scope-id)
$ n98-magerun2.phar cache:list
Cleans expired cache entries.
If you would like to clean only one cache type:
$ n98-magerun2.phar cache:clean [code]
If you would like to clean multiple cache types at once:
$ n98-magerun2.phar cache:clean [code] [code] ...
If you would like to remove all cache entries use cache:flush
Run cache:list command to see all codes.
$ n98-magerun2.phar cache:flush
$ n98-magerun2.phar cache:list [--format[="..."]]
$ n98-magerun2.phar cache:disable [code]
If no code is specified, all cache types will be disabled. Run cache:list command to see all codes.
$ n98-magerun2.phar cache:enable [code]
If no code is specified, all cache types will be enabled. Run cache:list command to see all codes.
View the data for a particular attribute:
$ n98-magerun2.phar eav:attribute:view [--format[="..."]] entityType attributeCode
Generates a new gift card pool.
$ n98-magerun2.phar giftcard:pool:generate
$ n98-magerun2.phar giftcard:create [--website[="..."]] [--expires[="..."]] [amount]
You may specify a website ID or use the default. You may also optionally add an expiration date to the gift card using the --expires option. Dates should be in YYYY-MM-DD format.
$ n98-magerun2.phar giftcard:info [--format[="..."]] [code]
$ n98-magerun2.phar giftcard:remove [code]
Compares module version with saved setup version in setup_module table and displays version mismatchs if found.
$ n98-magerun2.phar sys:setup:compare-versions [--ignore-data] [--log-junit="..."] [--format[="..."]]
- If a filename with --log-junit option is set the tool generates an XML file and no output to stdout.
Changes the version of a module. This command is useful if you want to re-run an upgrade script again possibly for debugging. Alternatively you would have to alter the row in the database manually.
$ n98-magerun2.phar sys:setup:change-version module version
Opens PHP interactive shell with initialized Magento Admin-Store.
$ n98-magerun2.phar dev:console
Variable $di
is made available with a Magento\Framework\ObjectManagerInterface
instance to allow creation of object instances.
If you need autocompletion for all n98-magerun commands you can start with "shell command".
$ n98-magerun2.phar shell
Run multiple commands from a script file.
$ n98-magerun2.phar [-d|--define[="..."]] [--stop-on-error] [filename]
Example:
# Set multiple config config:set "web/cookie/cookie_domain" example.com # Set with multiline values with "\n" config:set "general/store_information/address" "First line\nSecond line\nThird line" # This is a comment cache:flush
Optionally you can work with unix pipes.
$ echo "cache:flush" | n98-magerun2.phar script
$ n98-magerun2.phar script < filename
It is even possible to create executable scripts:
Create file test.magerun and make it executable (chmod +x test.magerun):
#!/usr/bin/env n98-magerun2.phar script
config:set "web/cookie/cookie_domain" example.com
cache:flush
# Run a shell script with "!" as first char
! ls -l
# Register your own variable (only key = value currently supported)
${my.var}=bar
# Let magerun ask for variable value - add a question mark
${my.var}=?
! echo ${my.var}
# Use resolved variables from n98-magerun in shell commands
! ls -l ${magento.root}/code/local
Pre-defined variables:
- ${magento.root} -> Magento Root-Folder
- ${magento.version} -> Magento Version i.e. 2.0.0.0
- ${magento.edition} -> Magento Edition -> Community or Enterprise
- ${magerun.version} -> Magerun version i.e. 2.1.0
- ${php.version} -> PHP Version
- ${script.file} -> Current script file path
- ${script.dir} -> Current script file dir
Variables can be passed to a script with "--define (-d)" option.
Example:
$ n98-magerun2.phar script -d foo=bar filename
# This will register the variable ${foo} with value bar.
It's possible to define multiple values by passing more than one option.