Magento 2 添加索引
Magento 2 addIndex
我是 Magento 的新用户,我正在尝试使用 UpgradeSchema.php 将基于 2 列的唯一数据库索引添加到自定义数据库 table。 table 和我正在编制索引的列一样已经存在。这是我的代码部分:
$installer->getConnection()
->addIndex(
$installer->getIdxName(
$installer->getTable('ds_runs'),
['date_delivery', 'run'],
AdapterInterface::INDEX_TYPE_UNIQUE
),
['date_delivery', 'run'],
['type' => AdapterInterface::INDEX_TYPE_UNIQUE]
);
我在 运行 setup:upgrade 时收到的错误是
Base table or view not found: 1146 Table 'doorstep.ds_runs_date_delivery_run_run_id'
doesn't exist,query was:DESCRIBE `DS_RUNS_DATE_DELIVERY_RUN_RUN_ID`
不知道我做错了什么。我可以看到它正在根据 table 名称和我要索引的列的串联来寻找 table。
更新:
这是正确的解决方案:
$installer->getConnection()
->addIndex(
$installer->getTable('ds_runs'),
$installer->getConnection()->getIndexName($installer->getTable('ds_runs'), ['date_delivery', 'run'], Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE),
['date_delivery', 'run'],
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
);
我是 Magento 的新用户,我正在尝试使用 UpgradeSchema.php 将基于 2 列的唯一数据库索引添加到自定义数据库 table。 table 和我正在编制索引的列一样已经存在。这是我的代码部分:
$installer->getConnection()
->addIndex(
$installer->getIdxName(
$installer->getTable('ds_runs'),
['date_delivery', 'run'],
AdapterInterface::INDEX_TYPE_UNIQUE
),
['date_delivery', 'run'],
['type' => AdapterInterface::INDEX_TYPE_UNIQUE]
);
我在 运行 setup:upgrade 时收到的错误是
Base table or view not found: 1146 Table 'doorstep.ds_runs_date_delivery_run_run_id'
doesn't exist,query was:DESCRIBE `DS_RUNS_DATE_DELIVERY_RUN_RUN_ID`
不知道我做错了什么。我可以看到它正在根据 table 名称和我要索引的列的串联来寻找 table。
更新: 这是正确的解决方案:
$installer->getConnection()
->addIndex(
$installer->getTable('ds_runs'),
$installer->getConnection()->getIndexName($installer->getTable('ds_runs'), ['date_delivery', 'run'], Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE),
['date_delivery', 'run'],
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
);