Magento2 ইনস্টলশেমা.এফপি নির্দিষ্ট সারণী তৈরি করে না


13

আমার কাছে একটি ইনস্টলশেমা.এফপি রয়েছে যা কেবল ডাটাবেসে প্রয়োজনীয় সারণী তৈরি করে না। স্কিমার কোডটি পতনের মতো:

<?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();
    }
}

আমি পতিত আদেশগুলি চালিয়েছি:

php bin/magento setup:upgrade
php bin/magento setup:db-schema:upgrade

কোনও ত্রুটি দেওয়া হয়নি, তবুও, আমি যখন আমার পৃষ্ঠায় পৌঁছেছি তখন আমি পতিত ত্রুটি পেয়েছি:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magento.myvendor_helpdesk_ticket' doesn't exist

সাহায্য করুন.


আপনি কোথাও 'মাইভেন্ডর_হেল্পডেস্ক_টিকিট' সংজ্ঞায়িত করেছেন? এটি কেবল ইনস্টলার-> getTable () এ ব্যর্থ হতে পারে।
ডিবিসিএন

আপনি সংজ্ঞা দিয়ে কি বোঝাতে চান? আপনি কি দয়া করে একটি ছোট উদাহরণ সরবরাহ করতে পারেন
লাচেজার রায়চেভ

আমি একটি রিসোর্সমডেল তৈরি করেছি, যেখানে আমি অ্যাপ / কোড / মাইভেন্ডার / হেল্পডেস্ক / মডেল / রিসোর্সমোডেল / টিকিট.পিএফ করি: $ এটি -> _ init ('মাইভেন্ডর_হেল্পডেস্ক_টিকিট', 'টিকিট_আইডি'); যদি এটি এটি সংজ্ঞায়িত করে ... অন্য যেদিকে যেখানে আমার 'মাইভেন্ডর_হেল্পডেস্ক_টিকেট' স্ট্রিংটি পোস্ট করেছে সেই
কোডটিতে রয়েছে

আমি "-> নতুন টেবিল ($ ইনস্টলার-> গেট টেবিল ('মাইভেেন্ডর_হেল্পডেস্ক_টিকেট'))" "-> নতুন টেবিল ('মাইভেেন্ডর_হেল্পডেস্ক_টিকিট') দিয়ে প্রতিস্থাপন করেছি" ... এখনও কিছুই নেই
লাচেজার রায়চেভ

3
সারণী setup_moduleথেকে রেকর্ডটি মুছতে চেষ্টা করুনmodule = 'MyVendor_Helpdesk'
মারিয়াস

উত্তর:


33

যদি ইতিমধ্যে কার্যকর করা হয় তবে ইনস্টলারটি আর চলবে না। মডিউল = 'মাইভেন্ডরহেল্পডেস্ক' দিয়ে
রেকর্ডটি সরিয়ে setup_moduleফেলা হলে এটি আবার চালানো উচিত।


এটি আমার জন্য কাজ করা হয়েছে দুর্দান্ত মরিয়াস।
নবীনবস

10

নিম্নলিখিত কোড চেষ্টা করুন।

delete from setup_module where  module ='module_name';
sudo bin/magento setup:upgrade
sudo bin/magento setup:di:compile
sudo bin/magento cache:clean

যদি আপনি var ফোল্ডারে কোনও অনুমতি ত্রুটি পান।

sudo chmod -R 777 var/*

1

ইনস্টলশেমা.এফপি-তে উপস্থিত থাকলে আমি প্রায়শই কিছু করি যা টেবিলটি ফেলে দেয়:

public function install(SchemaSetupInterface $setup, ModuleContextInterface $context){
    $setup->startSetup();
    // Drop table for development purpose
    $setup->getConnection()->dropTable($setup->getTable('my_custom_table')); ...

এটি করার পরে:

  1. আপনার ডিবি অ্যাক্সেস করুন
  2. নিম্নলিখিত কমান্ডটি চালান: সেটআপ_মডিউল থেকে ফর্ম মডিউল = 'মডিউল_নাম';
  3. আপনার ডিবি থেকে প্রস্থান করুন
  4. আপনার ম্যাজেন্টো রুট ফোল্ডারে এক্সিকিউট করুন: পিএইচপি বিন / ম্যাজেন্টো সেটআপ: ডিবি-স্কিমা: আপগ্রেড
  5. আপনার কাস্টম টেবিলটিতে সবকিছু ঠিক আছে কিনা তা পরীক্ষা করে দেখুন।

0

কেবল ম্যাগেন্টো ডাটাবেসে যান এবং প্রথমে আপনার মডিউলের নামের সাথে মিলিয়ে থাকা সেটআপ_মডিউল টেবিল থেকে সারিটি মুছুন যা তারপরে আবার ইনস্টলসচেমা চালানো উচিত - # php -f বিন / ম্যাজেন্টো সেটআপ: আপগ্রেড করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.