n98 magerun CLI 工具提供了一些方便的工具,可以从命令行与 Magento / Mage-OS / Adobe Commerce 配合使用。
Magento 开发人员、系统管理员和 DevOps 的瑞士军刀
最新版本 | |
---|---|
发展科 |
开发是在开发分支中完成的。
该软件只能与 Magento 2 一起运行。
如果您使用 Magento 1,请使用另一个稳定版本 (https://github.com/netz98/n98-magerun)。
这些工具将自动针对多个 PHP 版本进行测试。它目前在各种 Linux 发行版和 Mac OS X 中运行。不完全支持 Microsoft Windows(不包括某些命令,如db:dump
或install
)。
我们支持以下 Magento 版本:
2.4.x 开源/商业
2.3.x 开源/商业(最后兼容的 n98-magerun2 版本是 v5.2.0)
2.2.x 开源/商业(最后兼容的 n98-magerun2 版本是 v3.2.0)
我们支持以下 PHP 版本:
PHP 8.3
PHP 8.2
PHP 8.1
PHP 7.4
PHP 7.3(最后兼容版本是 v6.1.1)
PHP 7.2(最后兼容版本是 v4.7.0)
工具的安装有以下三种方式:
从文件服务器下载最新稳定的 n98-magerun phar 文件:
wget https://files.magerun.net/n98-magerun2.phar
或者如果您更喜欢使用 Curl:
卷曲-O https://files.magerun.net/n98-magerun2.phar
通过将 SHA256 校验和与网站上的校验和进行比较来验证下载:
shasum-a256 n98-magerun2.phar
也可以自动验证:
卷曲-sS -O https://files.magerun.net/n98-magerun2-latest.phar 卷曲-sS -o n98-magerun2-latest.phar.sha256 https://files.magerun.net/sha256.php?file=n98-magerun2-latest.phar shasum -a 256 -c n98-magerun2-latest.phar.sha256
如果它显示与网站上相同的校验和,则您已成功下载文件。
现在您可以使 phar 文件可执行:
chmod +x ./n98-magerun2.phar
基本安装现已完成,您可以验证它:
./n98-magerun2.phar --版本
该命令应该成功执行并显示 N98-Magerun 的版本号,如下所示:
n98-magerun2 version 4.8.0 by valantic CEC
您现在已经成功安装了Magerun!您可以进一步定制安装,例如在系统范围内安装它并启用自动完成 - 请继续阅读有关这些功能和其他功能的更多信息。
如果您想在系统范围内使用该命令,可以将其复制到/usr/local/bin
。
sudo cp ./n98-magerun2.phar /usr/local/bin/
我们提供了一个特殊的 dist 包来通过 Composer 安装 phar 文件。有关更多详细信息,请参阅 https://packagist.org/packages/n98/magerun2-dist。 dist 包的主要优点是没有包依赖性。
不建议通过 Composer 安装,因为它不可能兼容所有项目和 Magento 核心依赖项。请使用phar文件而不是Composer版本。我们无法再提供对所有 Magento 版本的兼容性。
有一个可用的self-update
命令。这仅适用于 phar 分发。
./n98-magerun2.phar自我更新[--dry-run]
使用--dry-run
选项,可以下载并测试 phar 文件,而无需替换旧文件。
用于使用 Magerun 自动完成的文件可以在文件夹res/autocompletion
中找到,在下面的一些关于特定的(Bash)的更多信息中,还有更多(例如 Fish,Zsh)。
Bash 补全可以预先生成,所有命令及其各自的选项都可以在选项卡上使用。要完成选项,请键入两个破折号 ( --
),然后键入 Tab。
要安装完成文件,请将n98-magerun2.phar.bash
复制到 bash compatdir 文件夹以进行自动完成。
在我的 Ubuntu 系统上,可以使用以下命令完成此操作:
sudo cp res/autocompletion/bash/n98-magerun2.phar.bash /etc/bash_completion.d/
具体文件夹可以通过pkg-config获取:
pkg-config --variable=compatdir bash-completion
详细信息可在 bash-completions 常见问题解答中找到:https://github.com/scop/bash-completion#faq
注意这里记录了更多可用命令。请使用 list 命令查看全部。
所有命令都会尝试检测当前的 Magento 根目录。如果您安装了多个 Magento,则必须将工作目录更改为首选安装。
您可以通过以下方式列出所有可用命令:
n98-magerun2.phar 列表
如果您没有在系统范围内安装 .phar 文件,您可以使用 PHP CLI 解释器调用它:
php n98-magerun2.phar 列表
全局配置参数:
范围 | 描述 |
---|---|
--root-dir | 强制 Magento 根目录。没有自动检测。 |
--skip-config | 不要加载任何自定义配置。 |
--skip-root-check | 不要检查 n98-magerun2 是否以 root 身份运行。 |
--skip-core-commands | 不包括 Magento 命令。 |
--skip-magento-compatibility-check | 不检查 Magento 版本兼容性。 |
该工具可用于运行 Magento 核心命令。我们提供了一个内部代理命令,它通过bin/magento
调用原始 Magento 命令。所有选项和参数都传递给原始命令。
如果您不想使用代理命令,可以使用--skip-core-commands
选项禁用它。
代理命令的一大优点是,如果您当前的工作目录位于 Magento 安装内部,则您可以运行任何命令,而无需将工作目录更改为 Magento 根目录或指定bin/magento
的路径。
如果您位于 Magento 根目录之外,则可以通过使用--root-dir
选项指定 Magento 根目录来运行任何命令。如果您安装了多个 Magento 或者它用于某种自动化,这将非常有用。
对于核心命令,我们过滤环境变量以避免启用 xdebug 扩展时出现问题。
n98-magerun2.phar 打开浏览器 [商店]
通过电子邮件地址加载基本客户信息。
n98-magerun2.phar 客户:信息 [电子邮件] [网站]
为商店前端创建新客户/用户。
n98-magerun2.phar 客户:创建 [电子邮件] [密码] [名字] [姓氏] [网站]
例子:
n98-magerun2.phar 客户:创建 [email protected] 密码 123 John Doe 基地
您可以添加任意数量的附加自定义字段,例如:
n98-magerun2.phar 客户:创建 [email protected] passworD123 John Doe 基本taxvat DE12345678 前缀 Mrs.
列出客户。输出限制为 1000(可以通过覆盖配置进行更改)。如果给出搜索参数,则会过滤客户(按名字、姓氏和电子邮件进行搜索)。
n98-magerun2.phar 客户:列表 [--format[="..."]] [搜索]
n98-magerun2.phar 客户:更改密码 [电子邮件] [密码] [网站]
仅当有多个网站可用时才必须给出网站参数。
n98-magerun2.phar 客户:令牌:创建 <电子邮件>
n98-magerun2.phar 客户:删除 [-f|--force] [-a|--all] [-r|--range] [--fuzzy] [--id=ID] [--website=ID ] [--email=EMAIL] [--firstname=STRING] [--lastname=STRING]
示例:
n98-magerun2.phar customer:delete --id 1 # 将删除 ID 为 1n98-magerun2.phar 的客户:delete --fuzzy --email=test # 将删除所有电子邮件地址为“%test%”的客户 n98-magerun2 .phar customer:delete --all # 将删除所有客户n98-magerun2.phar customer:delete --range # 将提示输入开始和结束 ID用于批量删除
按给定 ID 或网站 ID 和电子邮件或网站 ID 和名字和姓氏的组合删除客户。此外,您可以删除一系列客户 ID 或删除所有客户。
n98-magerun2.phar 客户:添加地址 [电子邮件] [网站] [--firstname=STRING] [--lastname=STRING] [--street=STRING] [--city=STRING] [--country=STRING ] [--邮政编码=字符串] [--电话=字符串] [--默认计费] [--默认运输]
示例:
n98-magerun2.phar 客户:add-address [email protected] base --firstname="John" --lastname="Doe" --street="Pariser Platz" --city="柏林" --country=" DE" --postcode="10117" --telephone="1234567890" # 在网站中通过电子邮件“[email protected]”向客户添加 Brandenburger Tor 地址“base”n98-magerun2.phar 客户:add-address [email protected] base --firstname="John" --lastname="Doe" --street="Pariser Platz" --city="Berlin" -- Country="DE" --postcode="10117" --telephone="1234567890" --default-billing --default-shipping # 将brandenburger tor的地址添加到电子邮件地址为“[email protected]”的客户网站“base”作为默认计费和运输
下载 Composer(如果尚未安装)
下载 Magento 2。
如果数据库不存在,则尝试创建数据库。
安装 Magento 示例数据。
启动 Magento 安装程序
在 .htaccess 文件中设置重写基础
交互式安装程序:
n98-magerun2.phar 安装
无人值守安装:
n98-magerun2.phar install [--magentoVersion[="..."]] [--magentoVersionByName[="..."]] [--installationFolder[="..."]] [--dbHost[ ="..."]] [--dbUser[="..."]] [--dbPass[="..."]] [--dbName[="..."]] [-- installSampleData[="..."]] [--useDefaultConfigParams[="..."]] [--baseUrl[="..."]] [--replaceHtaccessFile[="..."]]
无人值守的 Magento CE 2.0.0.0 dev beta 1 安装示例:
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/"
此外,使用--noDownload
选项,您可以安装已存储在给定数据库上--installationFolder
中的 Magento 工作副本。
提供版本、版本或配置的缓存后端、数据量或已安装的软件包等信息。
n98-magerun2.phar 系统:信息
选项:
选项 | 描述 |
---|---|
--sort | 按名称对表格进行排序 |
列出所有商店视图。
n98-magerun2.phar sys:store:list [--format[="..."]]
列出所有网站。
n98-magerun2.phar sys:网站:列表 [--format[="..."]]
列出 crontab.xml 文件中定义的所有 cronjobs。
n98-magerun2.phar sys:cron:list [--format[="..."]]
通过代码运行 cronjob。
n98-magerun2.phar sys:cron:运行 [作业]
如果没有传递job
参数,您可以从列表中选择一个作业。查看实际效果:http://www.youtube.com/watch?v=QkzkLgrfNaM 如果存在选项计划,则不会启动 cron,而是立即在 magento crontab 中计划。
n98-magerun2.phar sys:cron:kill [--timeout <秒>] [作业代码]
如果未指定作业,则会显示所有正在运行的作业的交互式选择。仅当进程与 n98-magerun2 在同一台计算机上运行时,才能终止作业。
进程终止的默认超时时间为 5 秒。
最后执行的 cronjobs 及其状态。
n98-magerun2.phar sys:cron:历史 [--format[="..."]] [--timezone[="..."]]
交互式创建 env 文件。如果还可以更新现有文件。要更新单个值,您可以使用命令config:env:set
。
n98-magerun2.phar 配置:env:创建
通过提供键和可选值在 env.php 中设置单个值。如果未设置值,该命令将保存一个空字符串作为默认值。
config.php 中的子数组可以通过添加“.”来指定。每个数组的字符。
n98-magerun2.phar config:env:set <键> [<值>]
您还可以选择使用可选的--input-format=json
标志来提供 json 文本参数作为值。这将允许您添加不是字符串的值,也可以添加其他标量类型。
示例:
n98-magerun2.phar config:env:set backend.frontName mybackend n98-magerun2.phar 配置:env:设置 crypt.key bb5b0075303a9bb8e3d210a971674367 n98-magerun2.phar config:env:set session.redis.host 192.168.1.1 n98-magerun2.phar config:env:set 'x-frame-options' '*'n98-magerun2.phar config:env:set --input-format=json queue.consumers_wait_for_messages 0 n98-magerun2.phar config:env:set --input-format=jsondirectories.document_root_is_pub truen98-magerun2.phar config:env:set --input-format=json cron_consumers_runner.consumers '["some.consumer", "some .其他.消费者"]'
通过提供密钥从 env.php 文件中删除配置。
config.php 中的子数组可以通过添加“.”来指定。每个数组的字符。
n98-magerun2.phar config:env:delete <key>
示例:
n98-magerun2.phar config:env:删除系统 n98-magerun2.phar config:env:删除cache.frontend.default.backend n98-magerun2.phar config:env:删除cache.frontend.default.backend_options
n98-magerun2.phar config:env:show [选项] [<键>]
如果未传递密钥,则文件的全部内容将显示为表格。
示例:
n98-magerun2.phar config:env:show # 全部内容n98-magerun2.phar config:env:show backend.frontName n98-magerun2.phar config:env:show --format=json n98-magerun2.phar config:env:show --format=csv n98-magerun2.phar config:env:show --format=xml
在商店配置元数据(标签)中搜索。输出是一个表,其中包含配置项的 ID、类型和名称。
类型可以是以下之一:
部分
团体
场地
n98-magerun2.phar config:search [--format[="..."]] <搜索>
n98-magerun2.phar config:store:set [--scope[="..."]] [--scope-id[="..."]] [--encrypt] 路径值
论据:
path - 配置路径值 配置值
选项:
选项 | 描述 |
---|---|
--scope | 配置值的范围(默认值: default )。可以是default 、 websites 、 stores ) |
--scope-id | 配置值的范围 ID(默认值: 0 ) |
--encrypt | 使用加密密钥加密配置值 |
n98-magerun2.phar config:store:get [--scope="..."] [--scope-id="..."] [--decrypt] [--format[="..." ]] [小路]
论据:
路径 - 配置路径
选项:
选项 | 描述 |
---|---|
--scope | 配置值的范围( default 、 websites 、 stores ) |
--scope-id | 配置值的范围 ID 或范围代码 |
--decrypt | 使用env.php 中定义的加密密钥解密配置值 |
--update-script | 输出为更新脚本行 |
--magerun-script | 与config:store:set 一起使用的输出 |
--format | 输出为json 、 xml 或csv |
帮助:
如果未设置路径,将列出所有可用的配置项。路径可能包含通配符 ( *
)
例子:
n98-magerun2.phar config:store:get web/* --magerun-script
n98-magerun2.phar config:store:删除 [--scope[="..."]] [--scope-id[="..."]] [--all] 路径
论据:
路径 - 配置路径
选项:
选项 | 描述 |
---|---|
--scope | 配置值的范围(默认、网站、商店) |
--scope-id | 配置值的范围 ID |
--all | 按路径删除所有条目 |
n98-magerun2.phar 配置:数据:acl
帮助:
将 acl.xml 数据打印为表格
n98-magerun2.phar config:data:di <类型>
论据:
type - 类型(类)
选项:
选项 | 描述 |
---|---|
--scope -s | 配置范围( global , adminhtml , frontend , webapi_rest , webapi_soap ,...)(默认值: global ) |
打印所有合并的 mview.xml 文件的数据。
n98-magerun2.phar config:data:mview [选项]
选项:
选项 | 描述 |
---|---|
--scope -s | 配置范围( global , adminhtml , frontend , webapi_rest , webapi_soap ,...)(默认值: global ) |
--tree -t | 将数据打印为树 |
--format | 输出为json 、 xml 或csv |
打印所有合并的indexer.xml 文件的数据。
n98-magerun2.phar config:data:indexer [选项]
选项:
选项 | 描述 |
---|---|
--scope -s | 配置范围( global , adminhtml , frontend , webapi_rest , webapi_soap ,...)(默认值: global ) |
--tree -t | 将数据打印为树 |
--format | 输出为json 、 xml 或csv |
n98-magerun2.phar 缓存:列表
清除过期的缓存条目。
如果您只想清理一种缓存类型:
n98-magerun2.phar 缓存:清理 [代码]
如果您想一次清理多种缓存类型:
n98-magerun2.phar 缓存:清理 [代码] [代码] ...
如果您想删除所有缓存条目,请使用cache:flush
运行cache:list
命令查看所有代码。
n98-magerun2.phar 缓存:flush [代码]
请记住, cache:flush
会清除缓存后端,因此同一后端中的其他缓存类型也会被清除。
该命令不检查缓存 ID 是否存在。如果要检查缓存 id 是否存在,请使用带有--strict
选项的cache:remove:id
命令。
n98-magerun2.phar 缓存:删除:id [选项[--strict] <id>
n98-magerun2.phar 缓存:列表 [--format[="..."]]
n98-magerun2.phar 缓存:禁用 [代码]
如果没有指定代码,所有缓存类型都将被禁用。运行cache:list
命令查看所有代码。
n98-magerun2.phar 缓存:启用 [代码]
此命令可让您调查缓存中存储的内容。它打印出一个带有缓存 ID 的表。
n98-magerun2.phar 缓存:报告 [-t|--tags] [-m|--mtime] [--filter-id[="..."]] [--filter-tag[=".. ."]] [--fpc]
按 ID 打印存储的缓存条目。
n98-magerun2.phar 缓存:查看 [--unserialize] [--decrypt] [--fpc] id
如果值被序列化,您可以使用--unserialize
选项强制获得漂亮的输出。某些条目已加密,可以使用--decrypt
选项解密。该命令默认使用核心缓存。如果应使用 FPC 缓存,则可以使用--fpc
选项。
删除预先生成的目录图像并触发clean_catalog_images_cache_after
事件,该事件将使整页缓存失效。
n98-magerun2.phar 缓存:目录:图像:刷新
如果未指定代码,则将启用所有缓存类型。运行cache:list
命令查看所有代码。
n98-magerun2.phar 管理员:用户:列表 [--format[="..."]]
n98-magerun2.phar admin:用户:更改密码 [用户名] [密码]
n98-magerun2.phar admin:用户:删除 [电子邮件|用户名] [-f]
ID 可以是电子邮件或用户名。该命令将首先尝试通过用户名查找用户,如果找不到,它将尝试通过电子邮件查找用户。如果省略 ID,系统将提示您输入 ID。如果省略强制参数-f
系统将提示您确认。
n98-magerun2.phar admin:token:create <用户名>
n98-magerun2.phar db:query <sql-query>
例子:
n98-magerun2.phar db:查询“从商店中选择*”
n98-magerun2.phar db:console [选项]
选项:
选项 | 描述 |
---|---|
--use-mycli-instead-of-mysql | 使用mycli 作为 MySQL 客户端而不是mysql |
--no-auto-rehash | 与 MySQL 客户端的-A 选项相同,用于关闭自动完成(避免较长的初始连接时间)。 |
--connection=CONNECTION | 为具有多个数据库的 Magento 配置选择 DB 连接类型(默认值: default ) |
使用mysqldump
转储配置的 Magento 数据库。
需要 MySQL CLI 工具
论据:
filename - 转储文件名
选项:
选项 | 描述 |
---|---|
--add-routines | 在转储中包含存储的例程(过程和函数)。 |
--add-time suffix | 将时间添加到文件名(仅当提供文件名时)。需要值 [后缀、前缀、否] |
--compression -c | 使用支持的算法之一压缩转储文件 |
--dry-run | 除了实际转储之外,做所有事情。测试有用。 |
--exclude | 从转储中完全排除的表(包括结构) |
--force -f | 如果定义了所有选项,则不提示 |
--git-friendly | 使用一个插入语句,但带有换行符,而不是单独的插入语句。 |
--human-readable | 使用每行带有列名的单个插入。 |
--include | 完全包含在转储中的表(默认值:包含所有表) |
--keep-definer | 不要将转储中的 DEFINER 替换为 CURRENT_USER |
--keep-column-statistics | 在mysqldump 中保留column statistics |
--no-single-transaction | 不要使用单事务(不推荐,这是阻塞的) |
--no-tablespaces | 如果您想在没有 PROCESS 权限的情况下创建转储,请使用此选项。 |
--only-command | 仅打印 mysqldump 命令。不执行。 |
--print-only-filename | 执行并打印除转储文件名之外的输出 |
--set-gtid-purged-off | 将 --set-gtid-purged=OFF 添加到 mysqlqump |
--stdout | 转储到标准输出 |
--strip | 要剥离的表(仅转储这些表的结构) |
n98-magerun2.phar db:dump
仅 mysqldump 命令:
n98-magerun2.phar db:dump --only-command [文件名]
或者直接输出到标准输出:
n98-magerun2.phar db:dump --stdout
使用压缩(必须安装 gzip cli 工具):
n98-magerun2.phar db:dump --compression="gzip"
转储数据库并排除一些表。这对于您可能想要配置受限数据库的开发或临时环境非常有用。
用空格分隔每个要删除的表。您可以使用*
和?
等通配符在表名称中删除多个表。此外,您还可以指定以 @ 符号开头的预定义表组。
示例: dataflow_batch_export unimportant_module_* @log
n98-magerun2.phar db:dump --strip="@stripped"
可用的表组:
表组 | 描述 |
---|---|
@2fa | 2FA 表。这些表用于存储管理员用户的 2FA 信息。 |
@admin | 管理员用户、角色、会话等。 |
@aggregated | 用于生成报告等的聚合表。 |
@dotmailer | Dotmailer 数据( email_abandoned_cart email_automation email_campaign email_contact )。 |
@customers | 客户数据(以及 B2B 扩展中的公司数据)。 |
@development | 删除日志、会话、交易数据和管理员用户,因此开发人员不必使用真实的客户数据或管理员用户帐户。 |
@dotmailer | Dotmailer 模块表 |
@ee_changelog | 自 EE 1.13 以来新索引器的更改日志表 |
@idx | 带有_idx 后缀的表和索引事件表。 |
@klarna | Klarna 表包含有关 klarna 付款及其报价/订单的信息。 |
@log | 日志表。 |
@mailchimp | Mailchimp 表。 |
@newrelic_reporting | 新的遗迹报告表。这些表提供了 New Relic 的生产指标数据。 |
@oauth | OAuth 会话、令牌等 |
@quotes | 购物车(报价)数据和 B2B 报价。 |
@replica | 副本表,这些是从 Magento Staging 功能生成的。 |
@sales | 销售数据(订单、发票、贷项凭证等)。 |
@search | 搜索相关表(catalogsearch_)。 |
@sessions | 数据库会话表。 |
@stripped | 剥离转储(日志和会话)的标准定义。 |
@trade | 当前贸易数据(客户、订单和报价)。您通常不希望在开发人员系统中使用这些内容。 |
@temp | 索引器 __temp 表。 |
需要 MySQL CLI 工具
论据:
filename - 转储文件名
选项:
选项 | 描述 |
---|---|
--connection=CONNECTION | 为具有多个数据库的 Magento 配置选择数据库连接类型 |
-c , --compression=COMPRESSION | 指定文件的压缩 |
--drop | 导入前删除并重新创建数据库 |
--drop-tables | 导入前删除表 |
--force | 即使发生 SQL 错误也继续 |
--only-command | 只打印 mysql 命令。不执行 |
--only-if-empty | 仅当数据库为空时导入 |
--optimize | 在导入之前将详细的 INSERT 转换为简短的 INSERT(不使用压缩) |
--skip-authorization-entry-creation | 将默认条目添加到authorization_role 和authorization_rule 表。 |
n98-magerun2.phar db:导入
如果使用剥离选项和@admin
组运行db:dump
,则authorization_rule 和authorization_role 表为空。这会阻止创建管理员用户。
您可以通过运行以下命令重新创建默认条目:
n98-magerun2.phar db:add-default-authorization-entries
如果您使用db:import
命令导入剥离的 SQL 转储,则将隐式调用此命令。
n98-magerun2.phar dev:asset:clear [--theme="..."]
选项:
选项 | 描述 |
---|---|
--theme | 需要明确的具体主题 |
要清除所有主题的资产:
n98-magerun2.phar dev:资产:清除
仅清除特定主题的资产:
n98-magerun2.phar dev:asset:clear --theme=Magento/luma
n98-magerun2.phar dev:主题:列表
创建一个空模块并将其注册到当前的 Magento 商店中。
<div class="highlight highlight-source-shell notranslate 相对位置溢出-auto" dir="auto" data-snippet-clipboard-copy-content="n98-magerun2.phar dev:module:create [-m|- -minimal] [--add-blocks] [--add-helpers] [--add-models] [--add-setup] [--add-all] [-e|--enable] [--modman] [--add-readme] [--add-composer] [--add-strict-types] [--作者姓名 [作者姓名]] [--作者电子邮件 [作者电子邮件] ]] [--描述 [描述]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [--root-dir [ROOT-DIR]] [--skip-config] [--skip-root-check] [--跳过核心命令