¿Cómo agregar una clave extranjera a una tabla programáticamente?
-
30-10-2019 - |
Pregunta
Estoy tratando de agregar un conjunto de tablas nuevas y estoy tratando de agregar una clave extranjera para vincular estas tablas. He buscado en línea para intentar encontrar información sobre addForeignKey()
pero no puedo encontrar nada.
Mirando a Varien_Db_Adapter_Interface::addForeignKey()
y Mage_Core_Model_Resource_Setup::getFkName()
Pensé que había tenido la configuración de abajo correctamente
->addForeignKey(
$installer->getFkName('namespace_module/shop', 'area_id', 'namespace_module/area','area_id'),
$installer->getTable('namespace_module/shop'),
'area_id',
$installer->getTable('namespace_module/area'),
'area_id',
Varien_Db_Ddl_Table::ACTION_CASCADE,
Varien_Db_Ddl_Table::ACTION_CASCADE
)
Pero la excepción dice diferente
Zend_Db_Exception Object
(
[_previous:Zend_Exception:private] =>
[message:protected] => Undefined column "shop_locator_shop"
[string:Exception:private] =>
[code:protected] => 0
[file:protected] => /Users/myname/Sites/site/www/lib/Varien/Db/Ddl/Table.php
[line:protected] => 450
[trace:Exception:private] => Array
(
[0] => Array
(
[file] => /Users/myname/Sites/site/www/app/code/local/Namespace/Module/sql/namespace_module_setup/install-0.1.0.php
[line] => 110
[function] => addForeignKey
[class] => Varien_Db_Ddl_Table
[type] => ->
[args] => Array
(
[0] => FK_SHOP_LOCATOR_SHOP_AREA_ID_SHOP_LOCATOR_AREA_AREA_ID
[1] => shop_locator_shop
[2] => area_id
[3] => shop_locator_area
[4] => area_id
[5] => CASCADE
[6] => CASCADE
)
)
Básicamente, ¿cómo hago para agregar una llave extranjera a mi mesa (he agregado una captura de pantalla de lo que estoy tratando de lograr)?
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange