fbpx

লারাভেলে নতুন কলাম যুক্ত করুন কোন ডাটা লস ছাড়াই

এই লারাভেল মাইগ্রেশন টিউটোরিয়ালে আমি আপনাকে দেখাতে যাচ্ছি যে কীভাবে আমরা ডাটাবেস না হারিয়ে আমাদের টেবিলে নতুন কলাম যুক্ত করতে পারি। আমরা এটি ম্যানুয়ালি করবোনা। আমরা এটি লারাভেল মাইগ্রেশন কমান্ড দিয়ে তৈরি করব

লারাভেলে নতুন কলাম যুক্ত করুন কোন ডাটা লস ছাড়াই। হ্যালো বন্ধুরা। কেমন আছেন সবাই? আশা করবো সবাই সুস্থ এবং নিরাপদেই আছেন। কোভিড-১৯ এর বর্তমান প্যানডেমিক অবস্থায় ভালো থাকাটা অনেকটা কঠিন হইয়ে উঠেছে। তারপরও স্বাস্থ্যবিধি মেনে চলতে হবে আমাদের সবাইকে যাতে আমরা প্রতিরোধ গড়ে তুলতে পারি। নিয়মিত হাত ধুয়ে নিন বারবার, মাস্ক ছাড়া বাইরে বেরুবেন না দয়া করে।

লারাভেলে নতুন কলাম যুক্ত করুন কোন ডাটা লস ছাড়াইঃ

তো মূল কথায় আসা যাক। আজকে আমরা কি শিখতে যাচ্ছি সেটা তো আপনারা টাইটেল দেখেই বুঝতে পেরেছেন। হ্যা, আজকে আমরা শিখবো লারাভেলে নতুন কলাম যুক্ত করবেন কোন ডাটা লস ছাড়াই। এটি কঠিন কোন কাজ না মোটেই। একদম বেসিক ধারনা থাকলেও আপনি আপনার লারাভেল প্রজেক্টের ডাটাবেইজে ডাটা লস না করেই নতুন টেবিল যোগ করে নিতে পারবেন।

এক নজরে দেখে নিনঃ

লারাভেল ই-কমার্স ওয়েবসাইট টিউটোরিয়াল

এই লারাভেল মাইগ্রেশন টিউটোরিয়ালে আমি আপনাকে দেখাতে যাচ্ছি যে কীভাবে আমরা ডাটাবেস না হারিয়ে আমাদের টেবিলে নতুন কলাম যুক্ত করতে পারি। আমরা এটি ম্যানুয়ালি করবোনা। আমরা এটি লারাভেল মাইগ্রেশন কমান্ড দিয়ে তৈরি করব।

কখনও কখনও মডেল এবং মাইগ্রেশন তৈরির পরে আমাদের টেবিল কলামটি পরিবর্তন করা দরকার হয়। আর তখন আপনি যেটা করেন তা হলো, migrate:refresh বা migrate:fresh কমান্ড রান করার মাধ্যমে সকল ডাটাবেইজ ডাটা মুছে ফেলেন।

আজকে আমি একটি উদাহরনের মধ্য দিয়ে আপনাদের দেখাবো টেবিল ডাটার লারাভেল মাইগ্রেশন আপডেট সেটিও আগের ডাটা রেখেই। তাহলে চলুন দেখে নিই ডাটা লস ছাড়া আমরা কিভাবে পরিবর্তনশিল ডাটাবেইজ স্কিমা তৈরি করতে পারি।

মনে করি, আমরা আমাদের প্রোডাক্ট টেবিলে কোয়ান্টিটি বা qty কলামের পরে প্রোডাক্ট কোড বা product_code এর কলাম যুক্ত করবো। এজন্য নিচের কমান্ডটি রান করতে হবে আমাদের।

php artisan make:migration add_new_column_to_products_table

উপরের কমান্ডটি রান করলে নিচের মতো একটি ফাইল পাবেন এই লোকেশনেঃ database\migration\add_new_column_to_products_table.php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddNewColumnToProductsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('products', function (Blueprint $table) {
           if (!Schema::hasColumn('products', 'product_code')){
             $table->string('product_code')->after('qty');
           };
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('products', function (Blueprint $table) {
            $table->dropColumn(['product_code']);
        });
    }
}

লারাভেলে নতুন কলাম যুক্ত করুন কোন ডাটা লস ছাড়াই

এখন আপনি নিচের মাইগ্রেট কমান্ডটি রান করে নতুন ফিল্ডটি যুক্ত করে ফেলতে পারবেন। তাহলে, নতুন ফিল্ড যোগ করার জন্য রান করুন এই কমান্ডঃ

php artisan make:migration add_product_code_to_products_table --table=products

আশা করি আজকের লেখাটি আপনাদের ভালো লাগবে এবং কাজে আসবে। যদি লেখাটি ভালো লেগে থাকে তাহলে আমার ব্লগে সাবস্ক্রাইব করুন, লেখাটি বন্ধুদের সাথে শেয়ার করুন। আমার পেইজে একটি লাইক দিন। এবং কমেন্ট সেকশন আপনাদের মতামতের জন্য উন্মুক্ত করা থাকলো।

লারাভেলে নতুন কলাম যুক্ত করুন কোন ডাটা লস ছাড়াই

চাইলে ঘুরে আসতে পারেনঃ

আমার এজেন্সি ওয়েবসাইট

এজেন্সি ফেইসবুক পেইজ

আমার ব্যাক্তিগত পেইজ

Default image
Shafat Mahmud Khan
প্রফেশনাল ওয়েব ডেভলপার। সি.ই.ও, আইটি জ্যাকফ্রুট - ওয়েব এন্ড ডিজিটাল সার্ভিসেস। প্রফেশনাল সার্ভিস এর জন্য যোগাযোগ করুন নিচের সোশ্যাল লিংকগুলোর মাধ্যমে। একজন প্রফেশনাল ওয়েব ডেভলপার। সি.ই.ও অফ আইটি জ্যাকফ্রুট - ওয়েব এন্ড ডিজিটাল সার্ভিসেস। প্রফেশনাল ওয়েবসাইট, অ্যাপ্লিকেশন এবং সফটওয়্যার ডেভলপমেন্ট সার্ভিস এর জন্য যোগাযোগ করুন নিচের সোশ্যাল লিংকগুলোর মাধ্যমে। ফেইসবুক পেইজঃ Jackfruit - Web & Digital Services Agency
Articles: 8

Let me know what you think