database.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <?php
  2. use Illuminate\Support\Str;
  3. return [
  4. /*
  5. |--------------------------------------------------------------------------
  6. | Default Database Connection Name
  7. |--------------------------------------------------------------------------
  8. |
  9. | Here you may specify which of the database connections below you wish
  10. | to use as your default connection for all database work. Of course
  11. | you may use many connections at once using the Database library.
  12. |
  13. */
  14. 'default' => env('DB_CONNECTION', 'mysql'),
  15. /*
  16. |--------------------------------------------------------------------------
  17. | Database Connections
  18. |--------------------------------------------------------------------------
  19. |
  20. | Here are each of the database connections setup for your application.
  21. | Of course, examples of configuring each database platform that is
  22. | supported by Laravel is shown below to make development simple.
  23. |
  24. |
  25. | All database work in Laravel is done through the PHP PDO facilities
  26. | so make sure you have the driver for your particular database of
  27. | choice installed on your machine before you begin development.
  28. |
  29. */
  30. 'connections' => [
  31. 'sqlite' => [
  32. 'driver' => 'sqlite',
  33. 'url' => env('DATABASE_URL'),
  34. 'database' => env('DB_DATABASE', database_path('database.sqlite')),
  35. 'prefix' => '',
  36. 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
  37. ],
  38. 'mysql' => [
  39. 'driver' => 'mysql',
  40. 'url' => env('DATABASE_URL'),
  41. 'host' => env('DB_HOST', '127.0.0.1'),
  42. 'port' => env('DB_PORT', '3306'),
  43. 'database' => env('DB_DATABASE', 'forge'),
  44. 'username' => env('DB_USERNAME', 'forge'),
  45. 'password' => env('DB_PASSWORD', ''),
  46. 'unix_socket' => env('DB_SOCKET', ''),
  47. 'charset' => 'utf8mb4',
  48. 'collation' => 'utf8mb4_unicode_ci',
  49. 'prefix' => '',
  50. 'prefix_indexes' => true,
  51. 'strict' => false,
  52. 'engine' => null,
  53. 'options' => extension_loaded('pdo_mysql') ? array_filter([
  54. PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
  55. ]) : [],
  56. ],
  57. 'pgsql' => [
  58. 'driver' => 'pgsql',
  59. 'url' => env('DATABASE_URL'),
  60. 'host' => env('DB_HOST', '127.0.0.1'),
  61. 'port' => env('DB_PORT', '5432'),
  62. 'database' => env('DB_DATABASE', 'forge'),
  63. 'username' => env('DB_USERNAME', 'forge'),
  64. 'password' => env('DB_PASSWORD', ''),
  65. 'charset' => 'utf8',
  66. 'prefix' => '',
  67. 'prefix_indexes' => true,
  68. 'schema' => 'public',
  69. 'sslmode' => 'prefer',
  70. ],
  71. 'sqlsrv' => [
  72. 'driver' => 'sqlsrv',
  73. 'url' => env('DATABASE_URL'),
  74. 'host' => env('DB_HOST', 'localhost'),
  75. 'port' => env('DB_PORT', '1433'),
  76. 'database' => env('DB_DATABASE', 'forge'),
  77. 'username' => env('DB_USERNAME', 'forge'),
  78. 'password' => env('DB_PASSWORD', ''),
  79. 'charset' => 'utf8',
  80. 'prefix' => '',
  81. 'prefix_indexes' => true,
  82. ],
  83. //sqlserver 用友数据库
  84. 'sqlsrvs' => [
  85. 'driver' => 'sqlsrv',
  86. 'host' => '',
  87. 'port' => '',
  88. 'database' => '',
  89. 'username' => '',
  90. 'password' => '',
  91. ],
  92. 'u8_third_sqlserver' => [
  93. 'driver' => 'sqlsrv',
  94. 'host' => env('SQLSRV_HOST'),
  95. 'port' => env('SQLSRV_PORT'),
  96. 'database' => env('SQLSRV_DATABASE'), // 这里填用友账套数据库名
  97. 'username' => env('SQLSRV_USERNAME'),
  98. 'password' => env('SQLSRV_PASSWORD'),
  99. 'charset' => 'utf8',
  100. 'prefix' => '',
  101. 'options' => [
  102. // 关键:防止花生壳网络闪断导致的连接丢失,设置合理的超时
  103. \PDO::SQLSRV_ATTR_QUERY_TIMEOUT => 30,
  104. // 关键:开启连接池(在固定连接名下)有助于复用底层连接,减少握手次数
  105. // 'ConnectionPooling' => 1,
  106. // 确保异常抛出,以便 Service 里的 try-catch 能抓到
  107. \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
  108. ],
  109. ],
  110. ],
  111. /*
  112. |--------------------------------------------------------------------------
  113. | Migration Repository Table
  114. |--------------------------------------------------------------------------
  115. |
  116. | This table keeps track of all the migrations that have already run for
  117. | your application. Using this information, we can determine which of
  118. | the migrations on disk haven't actually been run in the database.
  119. |
  120. */
  121. 'migrations' => 'migrations',
  122. /*
  123. |--------------------------------------------------------------------------
  124. | Redis Databases
  125. |--------------------------------------------------------------------------
  126. |
  127. | Redis is an open source, fast, and advanced key-value store that also
  128. | provides a richer body of commands than a typical key-value system
  129. | such as APC or Memcached. Laravel makes it easy to dig right in.
  130. |
  131. */
  132. 'redis' => [
  133. 'client' => env('REDIS_CLIENT', 'phpredis'),
  134. 'options' => [
  135. 'cluster' => env('REDIS_CLUSTER', 'redis'),
  136. 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
  137. ],
  138. 'default' => [
  139. 'url' => env('REDIS_URL'),
  140. 'host' => env('REDIS_HOST', '127.0.0.1'),
  141. 'password' => env('REDIS_PASSWORD', null),
  142. 'port' => env('REDIS_PORT', '6379'),
  143. 'database' => env('REDIS_DB', '0'),
  144. ],
  145. 'cache' => [
  146. 'url' => env('REDIS_URL'),
  147. 'host' => env('REDIS_HOST', '127.0.0.1'),
  148. 'password' => env('REDIS_PASSWORD', null),
  149. 'port' => env('REDIS_PORT', '6379'),
  150. 'database' => env('REDIS_CACHE_DB', '1'),
  151. ],
  152. ],
  153. ];