Для моей базы данных (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
пользователь и пароль? Или даже просто указать на другой параметр конфигурации базы данных?
Вы можете использовать:
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
Поможет ли добавление новой БД в файл настроек? Может быть:
# 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']