2015-08-31 2 views
0

В моем проекте я хочу создать консольные команды для удаления и создания БД, как в Symfony2 like database creation command in laravel console?. Способ, описанный в ответе на этот вопрос, отлично подходит для удаления БД, но когда я пытаюсь его создать с этим кодом:Команда создания базы данных в Laravel 5.1

$dbType = \Config::get('database.default'); 
$dbName = \Config::get('database.connections')[$dbType]['database']; 
\DB::statement("CREATE DATABASE `$dbName`"); 

я получаю исключение: SQLSTATE[42000] [1049] Unknown database 'my_awesome_db_name'. Есть идеи?

ответ

-1

Laravel пытается подключиться к MySQL и выбрать базу данных my_awesome_db_name. Это невозможно, потому что это имя базы данных еще не существует (вы его еще не создали), поэтому MySQL выходит из строя во внутренней команде USE my_awesome_db_name.

+0

yep. И есть ли способ избежать этой проблемы в Laravel? –

+0

Мое лучшее предположение заключается в том, чтобы оставить параметр конфигурации базы данных пустым в 'config/database.php', а затем вызвать' DB :: setDatabaseName ('my_awesome_db_name'); 'после создания базы данных. – samlev

+0

Ознакомьтесь с [Класс базы данных Laravel] (https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Connection.php), чтобы узнать, как это работает. – samlev

Смежные вопросы