gpt4 book ai didi

php - 为 artisan migrate 命令覆盖默认的 Laravel 数据库配置

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:02:41 27 4
gpt4 key购买 nike

对于我的数据库 (MySQL),我有两个用户帐户,一个 (mydbuser) 用于对所有表具有选择/插入/更新/删除权限的一般应用程序访问,另一个 ( mydbadmin) 具有管理表等的权限

CREATE USER 'mydbadmin'@'%' IDENTIFIED BY 'ultrasecret password';
GRANT ALL ON mydb.* TO 'mydbadmin'@'%';

CREATE USER 'mydbuser'@'%' IDENTIFIED BY 'not quite so secure password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'mydbuser'@'%';

我的 Laravel 应用程序配置为使用 mydbuser 用户,而 mydbadmin 当前用于手动设置表等。

现在,我想开始使用 Artisan migrationsseeding 来处理为应用程序的新实例创建数据库,但是使用标准应用程序配置, migrate 只能访问权限较低的帐户,因此根本无法创建/删除表。

有没有办法在我运行时覆盖 database.php 中配置的数据库用户/密码

php artisan migrate:install

和其他迁移命令?也许某些命令行开关允许我指定 mydbadmin 用户和密码?或者甚至只是指向不同的数据库配置设置?

最佳答案

您可以使用:

php artisan migrate:install --database=seconddb

但是您需要在您的database.php 配置文件中定义此seconddb 连接。当然运行这个命令你只会创建migrations表,仅此而已,所以如果你想进行标准迁移你需要使用:

php artisan migrate --database=seconddb

和播种:

php artisan db:seed --database=seconddb

database.php 文件配置示例:

'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'maindb',
'username' => 'root',
'password' => 'pass',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

'seconddb' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'otherdb',
'username' => 'user',
'password' => 'otherpass',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

如果您需要有关参数的其他信息,您可以随时运行 --help argument 例如:

php artisan migrate:install --help
php artisan migrate --help

关于php - 为 artisan migrate 命令覆盖默认的 Laravel 数据库配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com