Vik*_*tor 8 laravel laravel-5 laravel-5.1
我在phpmyadmin和新表中创建了新的数据库.
然后我做
public function next(Request $request){
$langs = DB::connection('mydb')->select('select * from lang');
}
Run Code Online (Sandbox Code Playgroud)
得到
Database [compgen] not configured.
Run Code Online (Sandbox Code Playgroud)
在我的.env
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=123
Run Code Online (Sandbox Code Playgroud)
在我的config/database.php中
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'test'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', '123'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'test_',
'strict' => false,
],
Run Code Online (Sandbox Code Playgroud)
Art*_*man 10
就我而言,我使用了2个数据库连接,而第二个数据库连接未缓存,命令调用:
php artisan config:cache
成功了。
要查看发生了什么,$connections在DatabaseManager->configure方法中输出变量就足够了。
对我来说,连接在开发中有效,但在生产环境中无效,所以经过大量搜索,我不得不重建配置缓存并且它已经起作用了。我在 Laravel 根目录中运行以下命令:
php artisan config:cache
Run Code Online (Sandbox Code Playgroud)
您正在使用单个连接,因此无需指定它:
$langs = DB::table('lang')->get();
Run Code Online (Sandbox Code Playgroud)
connection()仅当使用多个数据库连接时,才应使用method 。
任何人在这方面绊倒 - 如果您使用 Laravel 5.4 或更新版本,您可以在 config/database.php
'mysql_test' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE_TEST', 'forge'),
'username' => env('DB_USERNAME_TEST', 'forge'),
'password' => env('DB_PASSWORD_TEST', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_AUTO_CREATE_USER',
'NO_ENGINE_SUBSTITUTION',
],
'engine' => null,
],
Run Code Online (Sandbox Code Playgroud)
我创建了3级新env的变量DB_USERNAME_TEST,DB_PASSWORD_TEST,DB_DATABASE_TEST
.env用类似的东西编辑
DB_DATABASE_TEST=test_db
DB_USERNAME_TEST=local
DB_PASSWORD_TEST=localpassword
Run Code Online (Sandbox Code Playgroud)
确保配置已刷新: php artisan config:cache
您应该能够在新的测试数据库上运行数据库迁移,如下所示:
php artisan migrate:refresh --database=mysql_test
| 归档时间: |
|
| 查看次数: |
36302 次 |
| 最近记录: |