Magento 2 – Come modificare lo schema del database

Per aggiungere una nuova tabella nel database di Magento 2, possiamo automatizzare il processo attraverso la creazione di un modulo dedicato.

Per definire la struttura della nuova tabella, useremo lo script InstallSchema.php che va creato nella cartella Setup, a sua volta situata nella root del nuovo modulo creato. Potete trovare un esempio reale nel file del modulo Magento_Sales (del quale trovate una parte nell’immagine sotto), situato in vendor/magento/module-sales/Setup.

Come si può vedere dallo screenshot, viene definito il nome della tabella “sales_order” e associati i vari campi tramite il metodo addColumn(). Come ultima operazione, alla fine della fase di definizione troverete la chiamata

$installer->getConnection()->createTable($table);

Ma grazie agli script possiamo fare anche più di questo. Infatti esiste la classe InstallData che ci permette di inserire dei dati nella tabella creata, e questa operazione verrà effettuata automaticamente al momento dell’installazione del modulo. In questo caso creeremo quindi un file InstallData.php, anch’esso da posizionare nella cartella Setup.

Un esempio può essere può essere trovato nella cartella del modulo Magento_CatalogInventory. In questo caso i dati vengono scritti nella tabella cataloginventory_stock tramite il metodo insertForce()

Nota: troverete i file InstallData.php e InstallSchema.php solo se la vostra versione di Magento è precedente alla 2.3, dato che in quest’ultima è stato introdotto il cosiddetto “declarative schema”, che verrà trattato in uno dei successivi articoli.

 

Lascia un commento