Переопределение конфигурации базы данных Laravel по умолчанию для команд перехода artisan

Для моей базы данных (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 migrations а также seeding обрабатывать создание базы данных для новых экземпляров приложения, но со стандартной конфигурацией приложения, migrate имеет доступ только к учетной записи с меньшими правами, поэтому вообще не может создавать / удалять таблицы.

Есть ли способ переопределить пользователя базы данных / пароль, настроенный в файле database.php, когда я запускаю

php artisan migrate:install

и другие команды переноса? Возможно, некоторые параметры командной строки позволят мне указать mydbadmin пользователь и пароль? Или даже просто указать на другой параметр конфигурации базы данных?

3

Решение

Вы можете использовать:

php artisan migrate:install --database=seconddb

но вы должны определить это seconddb соединение в вашем database.php Конфигурационный файл Конечно, запустив эту команду, вы только создадите 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 аргумент например:

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

Другие решения

Поможет ли добавление новой БД в файл настроек? Может быть:

    # Slightly different database connection
'mydbadmin' => array(
'driver'    => 'mysql',
'host'      => 'host1',
'database'  => 'mydb',
'username'  => 'mydbadmin',
'password'  => 'ultrasecret password'
'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix'    => '',
),

затем укажите эту базу данных в CLI, например,

php artisan migrate:install --database['mydbadmin']
2

По вопросам рекламы [email protected]