Alvaro Romero
Alvaro Romero
Laravel
Comparte:

Múltiples Bases de Datos

Buen día a todos.
Tengo una duda respecto al manejo de múltiples bases de datos en un mismo proyecto.
Ya leí bastante documentación de como hacerlo y conseguí algo que no me gusta al 100%.
Y me gustaría cambiarlo, pero no lo he logrado hacerlo:
1.- Básicamente tengo todas las migraciones de las 2 bases de datos que tengo en la carpeta "migrations" que es la carpeta por default donde laravel guarda las migraciones, pero me gustaría guardarlas en diferentes carpetas.
Intente generar subcarpetas dentro de la carpeta "migrations" pero no las reconoce y solo ejecuta las que están de forma inmediata.
A lo que me gustaría sería llegar a algo como esto:
 database/
  |--factories/
  |--migrations/
  |  |--base1/
  |  |  |--2014_10_12_000000_create_users_table.php
  |  |--base2/
  |  |  |--2014_10_12_000000_create_otra_tabla_table.php
  |--seeders/ 
O en otro caso llegar a esto:
 database/
  |--factories/
  |--migrations/
  |  |--2014_10_12_000000_create_users_table.php
  |--migrations_base2/
  |  |--2014_10_12_000000_create_otra_tabla_table.php
  |--seeders/ 

2.- Actualmente, al ejecutar el comando "php artisan migrate:fresh --seed" me ejecuta de manera correcta las migraciones de las 2 bases de datos, el problema es que no lleva un registro individual de las migraciones ejecutadas, es decir:
  - En la base de datos1 debería de haber una tabla migrations con las migraciones ejecutadas para esa base de datos.
  - En la base de datos2 debería de haber una tabla migrations con las migraciones ejecutadas para esa base de datos.
Pero esto no lo hace así, actualmente solo se crea una tabla en la base de datos 1 y ahí lleva el control de todas las migraciones ejecutadas en ambas bases de datos.
Intente ejecutar el comando para que solo ejecute en una determinada conexión ("php artisan migrate:fresh --seed --database=base2") y cuando hago eso ejecuta todas las migraciones para esa base de datos.
Como les comento ya leí demasiada documentación y no consigo darle solución a ninguna de las 2 problemáticas que tengo.

De antemano muchas gracias.
Ricardo
Ricardo (86 xp)
Hola!, ¿has probado con la opción php artisan migrate --path=/database/migrations/base2? 
Alberto Lago
Alberto Lago (170 xp)
Quizás es porque la tabla migrations se crea en la base de datos de la conexión donde estás ejecutando las migraciones. 

En cualquier caso el control de las migracions se hace en un solo sitio, independientemente de donde se cree la tabla ya que estás en un único sistema, ¿no?