2016-08-08 11 views
6

के साथ एक mysql डीबी बनाने के लिए कैसे मैं Laravel 5.2 का उपयोग कर रहा हूँ। मैंने अपना पहला माइग्रेशन सेट किया है और मैं उन्हें चलाने के लिए चाहता हूं। video tutorial से यह एक mysql डीबी बनाने का तरीका नहीं बताता है। मुझे पता है कि मैं इसे मैन्युअल रूप से phpmyadmin में कर सकता हूं लेकिन क्या ऐसा करने के लिए एक लार्वा रास्ता है?लार्वेल

php artisan migrate:install 

वहां भी इसी तरह आदेश है कि डीबी बनाएगा है:

यह माइग्रेशन तालिका स्थापित हो जाएगा?

मैं सोच रहा हूँ प्रक्रिया होना चाहिए:

php artisan migrate:install 

भागो माइग्रेशन:

php artisan DB:install (or similar command) 

माइग्रेशन तालिका स्थापित

php artisan migrate 

और माइग्रेशन रोलबैक करने के लिए:

php artisan migrate:rollback 

उत्तर

5

बॉक्स से बाहर प्रदान की कुछ भी नहीं है लेकिन आप अपने खुद के आदेश कर सकता है जो आपके लिए यह कर सकता है:

php artisan make:console CreateDatabase 
// Note, in 5.3 this is make:command 

फिर app/Console/Commands में आप CreateDatabase.php मिल जाएगा। कि चूसने वाला खोलें और के कुछ परिवर्तन कर सकते हैं:

protected $name = "make:database"; 
आपकी फ़ाइल में

फिर नीचे नीचे हम एक नया समारोह की जरूरत है:

protected function getArguments() 
{ 
    return [ 
     ['name', InputArgument::REQUIRED, 'The name of the database'], 
    ]; 
} 

फिर हम एक और समारोह fire() कहा जाता है जो बुलाया जाएगा बनाती हूँ आदेश के आह्वान पर:

public function fire() 
{ 
    DB::getConnection()->statement('CREATE DATABASE :schema', ['schema' => $this->argument('name')]); 
} 

और अब तुम सिर्फ यह कर सकते हैं:

php artisan make:database newdb 

अब आपको अपने कनेक्शन कॉन्फ़िगरेशन के आधार पर आपके लिए बनाए गए newdb डेटाबेस मिलेगा।

संपादित सबसे महत्वपूर्ण हिस्सा भूल - आप अपने नए comand के बारे में app\Console\Commands\Kernel.php बता protected $commands[] सरणी में जोड़ने के लिए सुनिश्चित करने के लिए की जरूरत है।

protected $commands = [ 
    ///..., 
    App\Console\Commands\CreateDatabase::class 
]; 
+1

अच्छा एक धन्यवाद! – user1532669

+0

और 'डीबी' के लिए 'उपयोग' के माध्यम से आप क्या शामिल करते हैं? – atomkirk

+0

@atomkirk यह फेकाडे होना चाहिए। 'रोशनी \ समर्थन \ Facades \ DB' – Ohgodwhy

0

आपको डेटाबेस बनाने के लिए पहले अपना मोडल बनाना होगा और इसकी माइग्रेशन टेबल भी बनाना होगा। आपको इसका उपयोग करना चाहिए: php artisan make: model-m कमांड मॉडल और माइग्रेशन टेबल बनाने के लिए। के बाद कि किसी भी texteditor में अपने प्रवास तालिका खोलने अपने डेटाबेस तालिका में कॉलम जोड़ने और फिर करने के लिए, विस्थापित करने के लिए इस आदेश का उपयोग करें:

php कारीगर विस्थापित

0

आपको डीबी बनाना चाहिए, और कनेक्शन पैरामीटर सेट करना चाहिए। फिर, लार्वेल डीबी तक पहुंच जाएगा और माइग्रेशन चलाएगा (टेबल बनायेगा) और बीडर।

आप php artisan migrate यहाँ के लिए मानकों पाया जा सकता है: यदि आप अलग अलग mysql कनेक्शन भी उपयोग कर रहे हैं https://laravel.com/docs/5.2/migrations#running-migrations

2

इस उत्तर उपयोगी हो सकता है। मैं laravel में कोड लिख रहा हूँ 5,5

कदम: 1 आदेश बनाएं

php artisan make:command CreateDatabaseCommand 

चरण: 2 एप्लिकेशन/कंसोल/Kernel.php में आदेश रजिस्टर

protected $commands = [ 
    CreateDatabaseCommand::class 
]; 

चरण: 3 अपने CreateDatabaseCommand.php फ़ाइल

protected $signature = 'make:database {dbname} {connection?}'; 

    public function handle() 
    { 
    try{ 
     $dbname = $this->argument('dbname'); 
     $connection = $this->hasArgument('connection') && $this->argument('connection') ? $this->argument('connection'): DB::connection()->getPDO()->getAttribute(PDO::ATTR_DRIVER_NAME); 

     $hasDb = DB::connection($connection)->select("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = "."'".$dbname."'"); 

     if(empty($hasDb)) { 
      DB::connection($connection)->select('CREATE DATABASE '. $dbname); 
      $this->info("Database '$dbname' created for '$connection' connection"); 
     } 
     else { 
      $this->info("Database $dbname already exists for $connection connection"); 
     } 
    } 
    catch (\Exception $e){ 
     $this->error($e->getMessage()); 
    } 
    } 

में लिखें तर्क सब है कि। अब आप अपने आदेश चला

php artisan make:database {your-database-name} {your-connection-name}: 

नोट :: आप दूसरा तर्क का उपयोग करना चाहिए आप डिफ़ॉल्ट mysql कनेक्शन से अलग कोई सिलसिले में डेटाबेस बनाने के लिए अन्यथा आदेश स्वचालित रूप से डिफ़ॉल्ट db कनेक्शन ले जाएगा चाहते हैं केवल यदि

आशा इस में मदद मिलेगी किसी :)

0

आप स्थानीय विकास के लिए एक Vagrant बॉक्स या आभासी मशीन का उपयोग करने के लिए नहीं जा रहे हैं तो आप इंस्टा करने के लिए जा रहे हैं पसंद के अपने डेटाबेस ड्राइवर होगा और फिर एक नया डेटाबेस बनाएँ।

कमांड लाइन चलाने से ऐसा करने के लिए MySQL के साथ:

$ mysql -uroot -p 
mysql> create database yourDatabaseName; 

फिर cp .env.example .env और अपने डेटाबेस creds अद्यतन करें।

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=yourDatabaseName 
DB_USERNAME=root 
DB_PASSWORD=root 

जब आपने पहली बार ड्राइवर स्थापित किया था तो आपने अपने डेटाबेस में उपयोगकर्ता नाम और पासवर्ड सेट अप किया होगा। इसके बाद आपको php artisan key:generate और/या 'php artisan config: but php artisan migrate` को काम करना चाहिए। नीचे कुछ ट्यूटोरियल संसाधनों आप सहायक हो सकते हैं:

Initial database creation and seeding with Laravel 5

How to install MySQL on OSX