vitacode/database

Database package for Laravel by Vitacode

v1.1.2 2025-04-15 20:17 UTC

This package is auto-updated.

Last update: 2025-05-15 20:26:09 UTC


README

Este paquete para Laravel permite exportar la estructura de una base de datos y los primeros 1000 registros de las tablas. Además, proporciona un comando de importación que restringe la operación a conexiones provenientes únicamente de localhost para evitar problemas de seguridad.

Instalación

  1. Agregarlo en el composer.json:
"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/vitacodesas/database"
    }
]
  1. Instalar el paquete usando Composer:

    Para instalar el paquete, ejecuta el siguiente comando en la raíz de tu proyecto Laravel:

    composer require vitacode/database --dev

Uso

Comando de Exportación

Este paquete permite exportar la estructura de la base de datos junto con los primeros 1000 registros de cada tabla. Para realizar la exportación, ejecuta el siguiente comando:

php artisan db:export

Este comando generará un archivo de exportación que contiene la estructura de la base de datos y los primeros 1000 registros de cada tabla. El archivo será guardado en la carpeta storage/app/exports.

Opciones del Comando de Exportación

  • --path: Puedes especificar la ruta donde se almacenarán las exportaciones

    php artisan db:export

Comando de Importación

El paquete también permite importar la estructura y los datos desde un archivo previamente exportado. Sin embargo, el comando de importación tiene una restricción de seguridad: solo permite la conexión desde localhost. Esto significa que no podrás importar datos desde una dirección IP externa.

Para realizar la importación, utiliza el siguiente comando:

php artisan db:import

Este comando leerá el archivo de exportación previamente generado desde storage/app/exports y restaurará la estructura y los primeros 1000 registros de las tablas.

Restricción de Conexión

El comando de importación solo permite conexiones desde localhost para evitar problemas de seguridad, ya que permitir conexiones desde direcciones IP externas puede representar un riesgo para la integridad de tu base de datos.

Si intentas ejecutar el comando desde una IP externa, recibirás un error similar a este:

Error: La importación solo está permitida desde localhost.

Consideraciones Técnicas

  • Limitación de 1000 registros: El paquete está diseñado para exportar un máximo de 1000 registros por tabla. Si deseas exportar más registros, deberás modificar el código del paquete o adaptar el proceso de exportación a tus necesidades.

  • Compatibilidad de Base de Datos: Este paquete es compatible con bases de datos que Laravel soporta de forma predeterminada (MySQL).

  • Exportación de Estructura: La exportación incluye la estructura de las tablas, pero no las relaciones entre ellas. Si necesitas exportar relaciones complejas (por ejemplo, claves foráneas), deberás adaptar el código.

  • Formato del Archivo Exportado: El archivo generado para la exportación está en formato .sql, que es fácilmente importable en otras bases de datos o entornos.

Contribuciones

Si deseas contribuir al desarrollo de este paquete, por favor sigue estos pasos:

  1. Haz un fork del repositorio.
  2. Crea una nueva rama (git checkout -b feature/nueva-funcionalidad).
  3. Realiza tus cambios y haz un commit (git commit -am 'Añadir nueva funcionalidad').
  4. Haz un push a la rama (git push origin feature/nueva-funcionalidad).
  5. Crea un pull request en GitHub.

Licencia

Este paquete es de código abierto y se distribuye bajo la licencia MIT.

Tag

Crear tag git tag -a v1.0.0 -m "Primera versión estable" git push origin v1.0.0

Versionamientos

Ejemplo de incremento de versión:

  1. Si corriges errores pero no agregas nuevas funcionalidades, la siguiente versión sería 1.0.1.
  2. Si tu paquete está en la versión 1.0.0 y agregas nuevas funcionalidades sin romper las anteriores, la siguiente versión sería 1.1.0.
  3. Si haces un cambio importante que no es compatible con versiones anteriores, la siguiente versión sería 2.0.0.