【发布时间】:2021-09-05 17:59:18
【问题描述】:
我有一个 SAAS 应用程序,用户可以在其中创建学校,现在,一旦该学校获得批准,我需要自动创建该学校的数据库。到目前为止,我可以手动通过向 database.php 配置添加新连接来完成此操作。我的问题是,如何动态添加新连接到 database.php?
...
'connections' => [
'tenant2' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'tenant2',
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'paco97058' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'paco97058',
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
]
我想将paco97058动态添加到database.php
请注意,paco97058 是数据库名称,在创建时会自动创建。
【问题讨论】:
-
带连接数据库的数据库??
-
是的,就是这样。
-
每个学校真的需要不同的数据库吗?
-
我明白了。但问题是您是否真的需要多个数据库?它是一个 SaaS 应用程序这一事实有点无关紧要。
-
这能回答你的问题吗? stackoverflow.com/questions/67602130/…
标签: php database laravel connection config