寫之前先放上代碼截圖片段和注釋,僅供參考,下面會有解析:
新建數據庫
在laravel中,連接MySQL數據庫,并新建一個要切換的數據庫,用mysql_connect會報錯,換成下面方式:
$link = mysqli_connect('localhost', 'root', 'password');
mysqli_query($link, "CREATE DATABASE test");
mysqli_close($link);
切換數據庫:
Config::set('database.connections.mysql.database', 'test');
DB::reconnect('mysql');
數據庫遷移建表:
Artisan::call('migrate:refresh', ['--force' => true,]);
報錯如下:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database.migrate' doesn't exist (SQL: select * from `permissions`)
解決方法:在建表語句前初始化 migrate? 因為新建的數據庫沒有migrate表,所以沒法執行refresh。
Artisan::call('migrate:install');
Artisan::call('migrate:refresh', ['--force' => true,]);
選擇自己需要遷移的文件:
Artisan::call('migrate', ['--path' => 'database/migrations/test',]);
或者:
Artisan::call('migrate', array('--path' => 'database/migrations'));
我自己剛學laravel,用了差不多一個禮拜才完成這些,希望可以幫助一些初學的朋友。
注:以上操作在代碼中完成,不是命令行操作!!