【发布时间】:2017-03-20 12:11:02
【问题描述】:
我想将一些数据播种到我的数据库中。到目前为止,这一切都适用于“普通”数据库。
现在我想将相同的数据(相同的播种机)播种到另一个正在运行的数据库中。所以我尝试使用--database= 命令
php artisan db:seed --database=cb4test --class=TestDataTableSeeder -v
但这会将数据播种到“普通”数据库中,而不是在cb4test 中指定的数据库中。我做错了什么?
更多信息:
这是我config/database.php的一部分:
'connections' => [
'couchbase' => [
'driver' => 'couchbase',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 8091),
'bucket' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'n1ql_hosts' => [
'http://'.env('DB_HOST', 'localhost').':8093'
]
],
'cb4test' => [
'driver' => 'couchbase',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 8091),
'bucket' => env('DB_TEST', 'msg4test'),
'username' => env('DB_USERNAME'),
'n1ql_hosts' => [
'http://'.env('DB_HOST', 'localhost').':8093'
]
],
在我的.env 中,我确实有一个DB_TEST 的条目指向正确的couchbase-bucket(在mysql 中这将是一个mysql-table)。
不过,这不起作用。
我在我的TestDataTableSeeder.php 中创建了一个调试行,它给出了我当前使用的 DB-Table,这是在默认连接(名为 couchbase)中使用的那个,而不是在连接“cb4test”中使用的那个。
使用 Laravel 5.4
【问题讨论】:
-
您是否定义了与 cb4test 数据库的正确连接?
-
是的,连接已配置并正常工作。当我在 --database 中打错字时,我会得到一个错误,所以 laravel 会在 'config/database.php' 中查找此连接是否存在,但它不会使用它。
-
你能分享播种机类的样本吗?可能是你在播种机中定义了一个特定的数据库
-
我用另外 4 只眼睛检查了播种机,数据库连接没有被覆盖。在播种机类中,我插入了一个调试行来打印出当前的数据库表,它指向错误。默认情况下,数据库连接是否可以更改或被覆盖?
-
是你的默认数据库的“msg4test”名称吗?