खोज…


टिप्पणियों

डेटाबेस सीडिंग आपको अपने डेटाबेस में डेटा, सामान्य परीक्षण डेटा डालने की अनुमति देता है। डिफ़ॉल्ट रूप से database/seeds तहत एक DatabaseSeeder वर्ग database/seeds

रनिंग सीडर्स के साथ किया जा सकता है

php artisan db:seed

या यदि आप केवल एक ही वर्ग को संसाधित करना चाहते हैं

php artisan db:seed --class=TestSeederClass

सभी कारीगरों के आदेशों की तरह, आपके पास तरीकों की एक विस्तृत सरणी तक पहुंच है जो कि एपीआई प्रलेखन में पाई जा सकती है

डेटा सम्मिलित करना

डेटा डालने के कई तरीके हैं:

DB मुखौटा का उपयोग करना

public function run()
{
    DB::table('users')
        ->insert([
            'name' => 'Taylor',
            'age'  => 21
        ]);
}

एक मॉडल के माध्यम से तात्कालिकता

public function run()
{
    $user = new User;
    $user->name = 'Taylor';
    $user->save();
}

बनाने की विधि का उपयोग करना

public function run()
{
    User::create([
        'name' => 'Taylor',
        'age'  => 21
    ]);
}

कारखाने का उपयोग करना

public function run()
{
    factory(App\User::class, 10)->create();
}

पुराने डेटा को सीडिंग और& को हटाना और ऑटो-इंक्रीमेंट को रीसेट करना

public function run()
{
    DB::table('users')->delete();
    DB::unprepared('ALTER TABLE users AUTO_INCREMENT=1;');
    factory(App\User::class, 200)->create();
}

देखें बने डालने / डेटा अपडेट करने के बारे में अधिक जानकारी के लिए उदाहरण।

अन्य बीज बोने वाले

अपने DatabaseSeeder वर्ग के भीतर आप अन्य बीजों को कॉल करने में सक्षम हैं

$this->call(TestSeeder::class)

यह आपको एक फ़ाइल रखने की अनुमति देता है जहां आप आसानी से अपने सीडर्स पा सकते हैं। ध्यान रखें कि आपको विदेशी प्रमुख बाधाओं के बारे में अपने कॉल के क्रम पर ध्यान देने की आवश्यकता है। आप उस तालिका का संदर्भ नहीं दे सकते जो अभी तक मौजूद नहीं है।

बीज बनाना

बीज बनाने के लिए, आप make:seeder उपयोग कर सकते हैं make:seeder कारीगर कमान। उत्पन्न सभी database/seeds को database/seeds निर्देशिका में रखा जाएगा।

$ php artisan make:seeder MoviesTableSeeder

उत्पन्न बीजों में एक विधि होगी: run । आप इस विधि में अपने डेटाबेस में डेटा सम्मिलित कर सकते हैं।

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class MoviesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        App\Movie::create([
            'name' => 'A New Hope',
            'year' => '1977'
        ]);

        App\Movie::create([
            'name' => 'The Empire Strikes Back',
            'year' => '1980'
        ]);
    }
}

आप आम तौर पर अपने सभी बीज कॉल करना चाहते हैं जाएगा अंदर DatabaseSeeder वर्ग

db:seed लिखने के बाद, db:seed कमांड का उपयोग करें। यह DatabaseSeeder के run फ़ंक्शन को run

$ php artisan db:seed

आप --class विकल्प का उपयोग करके व्यक्तिगत रूप से चलाने के लिए एक विशिष्ट सीडर क्लास चलाने के लिए भी निर्दिष्ट कर सकते हैं।

$ php artisan db:seed --class=UserSeeder

यदि आप सभी माइग्रेशन रोलबैक करना चाहते हैं और फिर से शुरू करना चाहते हैं:

$ php artisan migrate:refresh --seed

migrate:refresh --seed कमांड इन 3 कमांड का शॉर्टकट है:

$ php artisan migrate:reset     # rollback all migrations
$ php artisan migrate           # run migrations
$ php artisan db:seed           # run seeders

सुरक्षित reseeding

आप अपने पहले से बनाए गए बीजों को प्रभावित किए बिना अपने डेटाबेस को फिर से बीज बनाना चाह सकते हैं। इस उद्देश्य के लिए, आप अपने firstOrCreate में firstOrCreate का उपयोग कर सकते हैं:

EmployeeType::firstOrCreate([
    'type' => 'manager',
]);

फिर आप डेटाबेस को सीड कर सकते हैं:

php artisan db:seed

बाद में, यदि आप किसी अन्य प्रकार का कर्मचारी जोड़ना चाहते हैं, तो आप बस उसी फ़ाइल में नया जोड़ सकते हैं:

EmployeeType::firstOrCreate([
    'type' => 'manager',
]);
EmployeeType::firstOrCreate([
    'type' => 'secretary',
]);

और बिना किसी समस्या के अपने डेटाबेस को फिर से बीज दें:

php artisan db:seed

पहली कॉल में सूचना आप रिकॉर्ड को पुनः प्राप्त कर रहे हैं लेकिन इसके साथ कुछ नहीं कर रहे हैं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow