Ich habe eine InstallSchema.php, die einfach nicht die erforderliche Tabelle in der Datenbank erstellt. Der Code des Schemas lautet wie folgt:
<?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();
}
}
Ich habe die folgenden Befehle ausgeführt:
php bin/magento setup:upgrade
php bin/magento setup:db-schema:upgrade
Es wurden noch keine Fehler angegeben. Wenn ich auf meine Seite komme, erhalte ich den folgenden Fehler:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magento.myvendor_helpdesk_ticket' doesn't exist
Bitte helfen Sie.
setup_module
den Datensatz mitmodule = 'MyVendor_Helpdesk'
Antworten:
Das Installationsprogramm wird nicht erneut ausgeführt, wenn es bereits ausgeführt wurde.
Wenn Sie den Datensatz
setup_module
mit module = 'MyVendor_Helpdesk' entfernen, sollte er erneut ausgeführt werden.quelle
Bitte versuchen Sie den folgenden Code.
Wenn Sie Berechtigungsfehler für den Ordner var erhalten.
quelle
Was ich oft mache, ist die Tabelle zu löschen, wenn sie auf InstallSchema.php vorhanden ist:
Danach machen Sie:
quelle
Gehen Sie einfach zur Magento-Datenbank und löschen Sie zuerst die Zeile aus der Tabelle setup_module, die dem Namen Ihres Moduls entspricht, damit das InstallSchema erneut ausgeführt werden soll - #php -f bin / magento setup: upgrade
quelle