আমি ম্যাজেন্টো ২.৩ ইনস্টল করেছি এবং আমি কাস্টম মডিউল তৈরি করছি।
তবে, আমি জানি না কীভাবে ম্যাজেন্টো ২.৩ সংস্করণে কাস্টম ডাটাবেস টেবিল তৈরি করবেন।
আমি ম্যাজেন্টো ২.৩ ইনস্টল করেছি এবং আমি কাস্টম মডিউল তৈরি করছি।
তবে, আমি জানি না কীভাবে ম্যাজেন্টো ২.৩ সংস্করণে কাস্টম ডাটাবেস টেবিল তৈরি করবেন।
উত্তর:
প্রথমত, db_schema.xml
ভিতরে ফাইল তৈরি করুন /RH/Helloworld/etc
এবং নিম্নলিখিত কোডটি লিখুন:
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
<table name="rh_helloworld" resource="default" engine="innodb" comment="RH Helloworld">
<column xsi:type="smallint" name="id" padding="6" unsigned="false" nullable="false" identity="true" comment="ID"/>
<column xsi:type="varchar" name="author_name" nullable="false" length="25" comment="Name"/>
<column xsi:type="varchar" name="email" nullable="false" length="25" comment="Email"/>
<column xsi:type="varchar" name="description" nullable="false" length="255" comment="Descrition"/>
<constraint xsi:type="primary" referenceId="PRIMARY">
<column name="id"/>
</constraint>
</table>
</schema>
<table> .. </table>
= "সারণির নাম তৈরি এবং সেট করার জন্য ব্যবহার করুন"<column> .. </column>
= "সারণির কলাম তৈরি এবং সেট করার জন্য ব্যবহার করুন"<constraint> .. </constraint>
= "প্রাথমিক বাধা, বিদেশী কী, অনন্য কী ইত্যাদির মতো সেট সীমাবদ্ধতার জন্য ব্যবহার করুন" "আপগ্রেড কমান্ড চালানোর আগে আপনাকে db_whitelist_schema.json
নিম্নলিখিত কমান্ডটি চালিয়ে আপনার স্কিমা ফাইল করতে হবে:
php bin/magento setup:db-declaration:generate-whitelist --module-name=RH_Helloworld
এখন, db_whitelist_schema.json
ফাইল আছে /RH/Helloworld/etc
ফোল্ডারে তৈরি করা হবে ।
এখন, চালান php bin/magento s:up
সারণী ডাটাবেসের ভিতরে তৈরি করা হবে।
=> আপনি যদি কোনও কলামটির নাম পরিবর্তন করতে চান তবে আপনার db_schema.xml
উপযুক্ত কলামে আপনার রেখার নীচে সেট করতে হবে :
<column xsi:type="varchar" name="customer_email" onCreate="migrateDataFrom(email)" on_update="false" nullable="false" default="" comment="Customer Email"/>
এখানে, নাম = "নতুন কলামের নাম" এবং অনক্রিট = "মাইগ্রেটডাটাফ্রোম ()" = "পুরানো কলামের নাম"
=> আপনি যদি টেবিলটি ড্রপ করতে চান, তবে আপনি এক্সএমএল ফাইল থেকে পুরো টেবিল নোডটি সরিয়ে ফেলতে পারেন বা আপনি অক্ষম বৈশিষ্ট্যটিকে আপনার নিচের লাইনের মতোই সেট করতে পারেন db_schema.xml
:
<table name="rh_helloworld" resource="default" engine="innodb" comment="RH Helloworld" disabled="true">
..
</table>
আরও তথ্যের জন্য, আপনি এখানে চেক করতে পারেন ।
আশা করি, এটি আপনার জন্য সহায়ক হবে।
আপনার যে কোনও কাস্টম মডিউলে ইত্যাদি ফোল্ডারের অধীনে db_schema.xML নামে ফাইল তৈরি করুন ।
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
<table name="books_data" resource="default" engine="innodb" comment="Book Table">
<column xsi:type="smallint" name="id" padding="6" unsigned="false" nullable="false" identity="true" comment="BOOK ID"/>
<column xsi:type="varchar" name="book_name" nullable="false" length="255" comment="Book Name"/>
<column xsi:type="int" name="author" unsigned="true" nullable="true" identity="false" default="" comment="Author"/>
<column xsi:type="varchar" name="isbn_no" nullable="true" comment="ISBN No"/>
<column xsi:type="timestamp" name="publish_date" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"
comment="Publish Date"/>
<column xsi:type="varchar" name="language" nullable="true" comment="Language"/>
<column xsi:type="decimal" name="mrp" scale="4" precision="12" unsigned="false" nullable="false"
default="0" comment="MRP"/>
<constraint xsi:type="primary" name="PRIMARY">
<column name="id"/>
</constraint>
</table>
<table name="author_data" resource="default" engine="innodb" comment="Author Table">
<column xsi:type="smallint" name="id" padding="6" unsigned="false" nullable="false" identity="true" comment="Author ID"/>
<column xsi:type="varchar" name="author_name" nullable="false" length="255" comment="Author Name"/>
<column xsi:type="varchar" name="author_email" nullable="false" length="255" comment="Author Email"/>
<column xsi:type="varchar" name="affliation" nullable="false" length="255" comment="Affliation"/>
<column xsi:type="int" name="age" unsigned="true" nullable="true" identity="false" default="" comment="Age"/>
<constraint xsi:type="primary" name="PRIMARY">
<column name="id"/>
</constraint>
</table>
</schema>
এখন একই পথে db_Witelist_schema.json তৈরি করুন
php bin/magento setup:db-declaration:generate-whitelist --module-name=Vendor_Module
এর পরে কেবল পিএইচপি বিন / ম্যাজেন্টো সেটআপ চালান : আপগ্রেড করুন । আরও তথ্যের জন্য আপনি এখানে চেক করতে পারেন । এই বিষয়ে আপনার আরও ব্যাখ্যা প্রয়োজন হলে আমাকে জানান।
ম্যাজেন্টো ২.৩ কোর মডিউলগুলি সেটআপ আপগ্রেড স্ক্রিপ্টের পরিবর্তে ঘোষিত স্কিমা পদ্ধতির ব্যবহার করেছে। এটি Magento 2.3 এবং তদূর্ধের একটি নতুন প্রস্তাবিত পদ্ধতি। ম্যাজেন্টো ২.৩.x এখনও ইনস্টলশেমা, ইনস্টলডাটা, .. ইত্যাদি নিয়ে কাজ করছে