खोज…
टिप्पणियों
डेटाबेस सीडिंग आपको अपने डेटाबेस में डेटा, सामान्य परीक्षण डेटा डालने की अनुमति देता है। डिफ़ॉल्ट रूप से 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
पहली कॉल में सूचना आप रिकॉर्ड को पुनः प्राप्त कर रहे हैं लेकिन इसके साथ कुछ नहीं कर रहे हैं।