Planificación automática de migraciones
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Planificación automática de migraciones
Una de las ventajas de las Migraciones Automáticas es que los desarrolladores no necesitan escribir las sentencias SQL para crear o modificar el esquema de la base de datos. Para obtener beneficios similares, añadiremos ahora un script a nuestro proyecto que planificará automáticamente archivos de migración basados en los cambios de nuestro esquema.
Para lograrlo, Ent utiliza Atlas, una herramienta de código abierto para gestionar esquemas de bases de datos, creada por los mismos desarrolladores de Ent.
Si has seguido nuestro repositorio de ejemplo, hasta ahora hemos usado SQLite como base de datos. Para mostrar un caso de uso más realista, cambiaremos ahora a MySQL. Puedes ver este cambio en PR #3.
Uso de la CLI de Atlas para planificar migraciones
En esta sección, mostraremos cómo usar la CLI de Atlas para planificar automáticamente migraciones de esquema. Anteriormente, los usuarios tenían que crear programas personalizados en Go para esto (como se describe aquí). Con las versiones recientes de Atlas, esto ya no es necesario: Atlas puede cargar nativamente el esquema de base de datos deseado desde un esquema de Ent.
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Para instalar la última versión de Atlas, simplemente ejecuta uno de los siguientes comandos en tu terminal, o visita el sitio web de Atlas:
- macOS + Linux
- Homebrew
- Docker
- Windows
curl -sSf https://atlasgo.sh | sh
brew install ariga/tap/atlas
docker pull arigaio/atlas
docker run --rm arigaio/atlas --help
If the container needs access to the host network or a local directory, use the --net=host flag and mount the desired
directory:
docker run --rm --net=host \
-v $(pwd)/migrations:/migrations \
arigaio/atlas migrate apply
--url "mysql://root:pass@:3306/test"
Download the latest release and move the atlas binary to a file location on your system PATH.
Luego, ejecuta el siguiente comando para generar automáticamente archivos de migración para tu esquema de Ent:
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
- MySQL
- MariaDB
- PostgreSQL
- SQLite
atlas migrate diff migration_name \
--dir "file://ent/migrate/migrations" \
--to "ent://ent/schema" \
--dev-url "docker://mysql/8/ent"
atlas migrate diff migration_name \
--dir "file://ent/migrate/migrations" \
--to "ent://ent/schema" \
--dev-url "docker://mariadb/latest/test"
atlas migrate diff migration_name \
--dir "file://ent/migrate/migrations" \
--to "ent://ent/schema" \
--dev-url "docker://postgres/15/test?search_path=public"
atlas migrate diff migration_name \
--dir "file://ent/migrate/migrations" \
--to "ent://ent/schema" \
--dev-url "sqlite://file?mode=memory&_fk=1"
Atlas carga el estado actual ejecutando los archivos SQL almacenados en el directorio de migraciones sobre la base de datos de desarrollo proporcionada. Luego compara este estado con el estado deseado definido por el paquete ent/schema y escribe un plan de migración para pasar del estado actual al deseado.
A continuación, veamos cómo actualizar una base de datos de producción existente para gestionarla con migraciones versionadas.