2015-02-05 2 views
0

Сейчас я создаю несколько социальных сетей, каждый из которых имеет свой собственный домен и базу данных, называемую контентом, и одну общую базу данных пользователей, связанную со всеми из них.Могу ли я разместить две таблицы миграции в разных базах данных при использовании Laravel?

Возникает вопрос - можно ли разместить данные о миграции в отношении пользователей в базу данных пользователей, так что каждый раз обновления к базе данных осуществляется через

PHP ремесленника мигрировать

на каждом из социальные сети, - они будут применяться только к базе данных пользователей только один раз.

+0

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

+0

@NomanUrRehman Я не совсем уверен, что у меня все получилось. Понимаете, все приложения имеют абсолютно идентичные базы данных приложений и используют одну и ту же пользовательскую базу данных. Поэтому у меня уже есть уродливое решение - создайте еще один проект laravel только для запуска пользовательских миграций, но это означает, что всем разработчикам (включая front-end) придется также загрузить этот второй проект и дополнительную инструкцию, как они должны запускать это и т. Д. Я был просто интересно, может ли быть менее сложное решение. – naneri

+0

Итак, вы хотите, чтобы одно центральное миграционное репо было разделено несколькими проектами? –

ответ

4

Я сделал это в прошлом проекте, но вам нужно быть осторожным с командами Artisan, которые вы запускаете.

Работая с вашим примером, я бы сделал следующее;

  • app/database/migrations/users - Миграции для вашей базы данных пользователей живут здесь
  • app/database/migrations/content - Миграции для вашей базы данных контента жить здесь

Вам также необходимо создать соответствующие соединения с базой данных для вашей конфигурации;

app/config/database.php;

<?php 
return [ 
    'connections' => [ 
     'users' => [ 
      // Usual database connection details here 
     ], 
     'content_site1' => [ 
      // Usual database connection details here 
     ], 
     'content_site2' => [ 
      // Usual database connection details here 
     ] 
    ] 
]; 

После того, как вы все это настроены, вы должны быть в состоянии запустить php artisan migrate --path app/database/migrations/users --database users перенести базы данных пользователей, и php artisan migrate --path app/database/migrations/content --database content_site1 для вашего сайта контента. Помните изменение параметра базы данных для каждого подключения, для которого вы хотите запустить миграцию.

+0

ОК, вот что мне нужно, потому что я собираюсь автоматизировать развертывание. Спасибо Маркусу. – naneri