/ / लारवेल रिफ्रेशिंग डेटाबेस कॉन्फिग कैश को डायनामिकली डेटाबेस नाम जोड़ने के बाद - php, mysql, laravel, larvelvel-4

गतिशील रूप से डेटाबेस नाम जोड़ने के बाद लार्वा रीफ्रेशिंग डेटाबेस कॉन्फ़िगर कैश - php, mysql, laravel, laravel-4

मैं एक वेब उपयोगकर्ता इंटरफ़ेस बनाने की कोशिश कर रहा हूं जिसमें एक उपयोगकर्ता एक नए डेटाबेस का नाम निर्दिष्ट करता है, फिर उस डेटाबेस को बनाया जाता है, लारवेल डेटाबेस कॉन्फ़िगरेशन फ़ाइल को अपडेट किया जाता है और माइग्रेशन चलाया जाता है।

डॉन "टी चिंता आई" मैं इस कोड को साफ करने जा रहा हूं, मैं पहले बुनियादी कार्यक्षमता को नीचे लाने की कोशिश कर रहा हूं।

public function setupDatabase($input)
{

/* set the database name variable from user defined input */
$dbname = $input["database"];

/* create the database from input */
DB::statement("CREATE DATABASE IF NOT EXISTS `{$dbname}`");

/* update laravels database config file to the new database name */
$writeConfig = new OctoberRainConfigRewrite;
$writeConfig->toFile(app_path() . "/config/database.php", [
"connections.mysql.database" => $dbname
]);

/* run migrations */
Artisan::call("migrate", array("--force" => true));

}

डेटाबेस सफलतापूर्वक बनाया गया है, config / database.php फ़ाइल को अद्यतन किया गया है, और माइग्रेशन चलाने का प्रयास करता है, लेकिन मुझे यह त्रुटि मिलती है:

{"error":{"type":"Illuminate\Database\QueryException","message":"SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected (SQL: create table `migrations` (`migration` varchar(255) not null, `batch` int not null) default character set utf8 collate utf8_unicode_ci)","file":"/test/vendor/laravel/framework/src/Illuminate/Database/Connection.php","line":600}}

मुझे पता नहीं है कि कैश्ड प्रतीत होने वाले डेटाबेस कनेक्शन को कैसे रीफ्रेश किया जाए।

उत्तर:

जवाब के लिए 0 № 1

कारीगर :: कॉल () के बजाय सिस्टम () का उपयोग करके काम करना समझे

system("cd path/to/project && php artisan migrate --force");