Вызовите миграцию php artisan с помощью Artisan

Можно ли создать вызов или команду Artisan для

php artisan migrate

как Artisan::call('migrate);

Поэтому я могу перенести отсутствующие таблицы в свою базу данных при динамическом изменении соединения.

  Config::set('database.connections.dynamicdb', array(
        'driver'    => 'mysql', 
         'host'      => '127.0.0.1',
         'database'  =>  $database_name,
         'username'  =>  'test_user',
         'password'  =>  '123456',
         'charset'   => 'utf8mb4',
         'collation' => 'utf8mb4_unicode_ci',
         'strict'    => false,
         'options'   => [                                
               \PDO::ATTR_EMULATE_PREPARES => true
            ]
       ));

  Artisan::call('migrate');

Или есть способ создать для него команду? Пожалуйста, предложите какое-нибудь решение.

Вы сами ответили на свой вопрос - Artisan::call('migrate'). Вы пробовали это? У вас проблемы с этим?

ceejayoz 06.02.2019 22:11

Это не работает. У меня ларавель 5.6

Lano Angel 06.02.2019 22:12

Дайте определение «это не работает». Что случается? Какие ошибки или поведение вы получаете?

ceejayoz 06.02.2019 22:13

Ок, я расскажу вам сценарий. Я использовал промежуточное программное обеспечение для динамического изменения соединения, и после того, как конфигурация установлена ​​​​в базу данных пользователей, я запускаю команду artisan. Он не показывает ошибку.

Lano Angel 06.02.2019 22:15

Страница «висит» и просто сидит там? Возможно, вам придется передать --force, если он находится в производстве; см. stackoverflow.com/questions/37953783/….

ceejayoz 06.02.2019 22:18
Artisan::call('migrate', array('--path' => 'app/migrations', '--force' => true)); Я выполнил эту команду, хотя вход в систему все еще не работает.
Lano Angel 06.02.2019 22:23

Вероятно, вам также нужно сказать ему сделать --database dynamicdb. Вы продолжаете говорить «не работает», не указывая, что происходит — получаете ли вы ошибку, бесконечный индикатор загрузки или он просто продолжается, как если бы он был успешным.

ceejayoz 06.02.2019 22:25

` \Artisan::call('migrate', array('--path' => 'app/migrations', '--force' => true , '--database' => 'dynamicdb'));` I запустите эту команду. Он не показывает никакой ошибки. Еще не мигрировали.

Lano Angel 06.02.2019 22:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
8
3 607
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте этот код:

\Artisan::call('migrate',
 array(
   '--path' => 'database/migrations',
   '--database' => 'dynamicdb',
   '--force' => true));

Поскольку по умолчанию в качестве пути используется /приложение, а миграции помещаются в базу данных/миграции. Так что это будет работать, как это работало для меня при создании нового проекта.

Другие вопросы по теме