J'ai un InstallSchema.php qui ne crée tout simplement pas la table nécessaire dans la base de données. Le code du schéma est en jachère:
<?php
namespace MyVendor\Helpdesk\Setup;
use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
/**
* @codeCoverageIgnore
*/
class InstallSchema implements InstallSchemaInterface
{
public function install(SchemaSetupInterface $setup,
ModuleContextInterface $context)
{
$installer = $setup;
$installer->startSetup();
$table = $installer->getConnection()
->newTable($installer->getTable('myvendor_helpdesk_ticket'))
->addColumn(
'ticket_id',
\Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
null,
['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true],
'Ticket Id'
)
->addColumn(
'customer_id',
\Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
null,
['unsigned' => true],
'Customer Id'
)
->addColumn(
'title',
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
null,
['nullable' => false],
'Title'
)
->addColumn(
'severity',
\Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
null,
['nullable' => false],
'Severity'
)
->addColumn(
'created_at',
\Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
null,
['nullable' => false],
'Created At'
)
->addColumn(
'status',
\Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
null,
['nullable' => false],
'Status'
)
->addIndex(
$installer->getIdxName('myvendor_helpdesk_ticket', ['customer_id']),
['customer_id']
)
->addForeignKey(
$installer->getFkName('myvendor_helpdesk_ticket', 'customer_id', 'customer_entity', 'entity_id'),
'customer_id',
$installer->getTable('customer_entity'),
'entity_id',
\Magento\Framework\DB\Ddl\Table::ACTION_SET_NULL
)
->setComment('myvendor Helpdesk Ticket');
$installer->getConnection()->createTable($table);
$installer->endSetup();
}
}
J'ai exécuté les commandes de jachère:
php bin/magento setup:upgrade
php bin/magento setup:db-schema:upgrade
Aucune erreur n'a été donnée, cependant, lorsque j'arrive sur ma page, je reçois l'erreur de jachère:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magento.myvendor_helpdesk_ticket' doesn't exist
S'il vous plaît, aidez.
setup_module
l'enregistrement avecmodule = 'MyVendor_Helpdesk'
Réponses:
Le programme d'installation ne fonctionnera pas à nouveau s'il a déjà été exécuté.
La suppression de l'enregistrement de
setup_module
avec module = 'MyVendor_Helpdesk' devrait le relancer.la source
veuillez essayer le code suivant.
si vous obtenez des erreurs d'autorisation sur le dossier var.
la source
Quelque chose que je fais souvent est de supprimer la table si elle existe sur InstallSchema.php:
Après cela, faites:
la source
allez simplement dans la base de données magento et supprimez d'abord la ligne de la table setup_module correspondant au nom de votre module pour qu'il réexécute le programme d'installation - #php -f bin / magento setup: upgrade
la source