You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magento 2.4.4无法生成db_schema_whitelist.json问题求助

解决Magento 2.4.4中db_schema_whitelist.json无法生成的问题

问题场景

  • 已在app/code/Vendor_Name/Module_Name/etc/创建db_schema.xml,内容符合XML Schema规范
  • 执行CLI命令php bin/magento setup:db-declaration:generate-whitelist --module-name=VendorName_ModuleName无报错,但目标目录未生成db_schema_whitelist.json
  • 目标模块已通过bin/magento module:enable启用

解决步骤

1. 修正模块名称参数

命令中的--module-name必须与模块registration.php内定义的名称完全一致:

  • 打开app/code/Vendor_Name/Module_Name/registration.php,查看\Magento\Framework\Component\ComponentRegistrar::register方法的第三个参数,比如如果是Vendor_Name_Module_Name,则执行正确命令:
    php bin/magento setup:db-declaration:generate-whitelist --module-name=Vendor_Name_Module_Name
    
    注意下划线、大小写必须完全匹配。

2. 先执行模块安装升级

确保模块已被Magento安装系统识别,先执行:

php bin/magento setup:upgrade

完成后再重新运行白名单生成命令。

3. 检查目录写入权限

确认app/code/Vendor_Name/Module_Name/etc/目录具备服务器用户的写入权限,执行以下命令调整(根据服务器实际用户修改www-data):

chmod -R 775 app/code/Vendor_Name/Module_Name/
chown -R www-data:www-data app/code/Vendor_Name/Module_Name/

4. 验证db_schema.xml语法

用Magento自带工具验证XML文件是否存在语法错误:

php bin/magento setup:db-declaration:validate --module-name=Vendor_Name_Module_Name

若有错误提示,修复后重新生成白名单。

5. 手动创建白名单文件(临时方案)

如果以上方法均无效,可手动在etc目录创建db_schema_whitelist.json,内容如下:

{
    "test_table": {
        "column": {
            "entity_id": true,
            "title": true,
            "created_at": true,
            "updated_at": true
        },
        "constraint": {
            "PRIMARY": true
        }
    }
}

创建完成后执行php bin/magento setup:upgrade,自定义表将被创建。

内容的提问来源于stack exchange,提问作者ketty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:06:30