Hemos iniciado un nuevo proyecto que usa marklogic para almacenar documentos. Para que la aplicación se ejecute, necesitamos crear una base de datos, un bosque, nuevos usuarios y configurar un servidor XDBC. Es bastante fácil hacerlo desde la herramienta de administración web proporcionada por Marklogic, pero para ejecutarlo desde un servidor de integración continua, necesitamos automatizarlo. ¿Hay alguna manera de hacerlo desde la línea de comandos (como el sqlcmd.exe para sqlserver o sql plus en Oracle)?Cómo creo una base de datos en marklogic desde un script
Respuesta
Siempre que use MarkLogic 5.x, lo más fácil sería usar Configuration Manager. Esta herramienta basada en la web le permite exportar toda la configuración de la base de datos y del servidor de aplicaciones a un único archivo xml que puede ser controlado por la versión. También se puede importar para configurar completamente o reconfigurar su instancia de MarkLogic.
Para utilizar esto como parte de la integración continua, debería realizar un script de la importación de la configuración. Puede crear un servidor http que tenga un punto final que invoca la API de configuración para realizar la carga, como se documenta aquí: http://community.marklogic.com/pubs/5.0/apidocs/package-api.html. Este servicio basado en https podría invocarse fácilmente a través de ANT o cualquier otra herramienta de CI.
De forma alternativa, especialmente si aún no se está ejecutando en 5.x, podría crear un script de todo el proceso en lugar de usar un paquete de configuración. Todas las tareas de administración están documentadas aquí: http://community.marklogic.com/pubs/5.0/books/adminAPI.pdf. Luego deberá escribir todo el código necesario para configurar su base de datos, servidores de aplicaciones, etc. y luego exponerlo a través de un servidor http como se describe arriba.
Gracias a la ayuda de Clark Richey, podría haber encontrado una manera de automatizar la configuración del servidor MarkLogic 5.x (aunque de ningún modo directo).
Por ejemplo, si desea automatizar la creación de un servidor xdbc, Vaya a la consola de consulta de una instancia donde exista un servidor xdbc configurado manualmente. Use la siguiente xquery para generar un archivo de paquete para el servidor xdbc (en mi caso llamado servidor de muestra).
import module namespace package = "http://marklogic.com/package/package" at "/MarkLogic/package/package.xqy";
dejar $ my-paquete: = paquete: crear()
paqueteretorno: complemento servidor de aplicaciones ($ my-paquete, "por defecto", "muestra-servidor")
Usted haría ahora vea un paquete xml que contiene toda la información necesaria para crear y configurar el servidor xdbc. Guarde esto en un archivo o en su portapapeles. Ahora vaya a la consola de consulta de la instancia de marklogic que desea configurar. Use la siguiente xquery para instalarlo realmente en la instancia.
import module namespace package = "http://marklogic.com/package/package" at "/MarkLogic/package/package.xqy";
let $ paquete: = {pegar el código XML paquete guardó en el archivo/portapapeles paso 1}
paqueteretorno: instalar ($ paquete)
Ahora va a un obtener un resultado XML que dice que el paquete ha sido escrito.
Ahora el paso más importante de automatizar esto en mi entorno de CI.Escribiría una tarea antienvejecimiento personalizada (o en mi caso específico un cmdlet PowerShell) que lea el archivo de configuración de un sistema de archivos, se conecte a ML utilizando XCC (y credenciales de administrador, porque cosas como crear bases de datos y servidores de aplicaciones lo necesitan) y luego ejecuta la misma xquery definida anteriormente. Luego puedo controlar la versión del archivo de configuración en mi control de fuente y de esa manera puedo automatizar la creación/configuración de bases de datos en una nueva instalación de ML sin ninguna intervención manual. ¿Alguna otra forma mejor de hacerlo?
Para que sepa, hay un conjunto de tareas para MarkLogic en github http: // developer .marklogic.com/code/ant-tasks – derickson
La aplicación de gestión de configuración también proporciona una interfaz REST de embalaje. Hay una url para PUBLICAR un paquete para la instalación. Más detalles aquí: http://community.marklogic.com/pubs/5.0/apidocs/packageREST.html – grtjn
- 1. ¿Cómo creo una base de datos programáticamente en SQL Server?
- 2. ¿Cómo creo categorías anidadas en una base de datos?
- 3. ¿Cómo creo una base de datos en memoria sqllite3?
- 4. ¿Cómo creo un archivo CSV desde la base de datos en Python?
- 5. ¿Cómo creo una página base en WPF?
- 6. ¿Cómo creo un script de configuración?
- 7. ¿Cómo creo una nueva base de datos Firebird desde la línea de comando?
- 8. ¿Cómo eliminar desde una base de datos?
- 9. Google Apps Script: ¿Cómo creo un archivo en una carpeta?
- 10. Exportar un script CREATE para una base de datos desde pgAdmin
- 11. ¿Crear una base de datos desde otra base de datos?
- 12. ¿Cómo crear un proyecto de base de datos desde una base de datos SQL Server existente?
- 13. ¿Cómo ejecutar un archivo de script de base de datos desde Delphi?
- 14. Cómo ejecutar un script .sql desde bash
- 15. ¿Cómo puedo salir de un script nodeJS desde el script?
- 16. Script SQL para "copiar" una base de datos
- 17. ¿Cómo creo una base de datos Microsoft Jet (Access) sin un ensamblado de interoperabilidad?
- 18. ¿Cómo llamar a un script SQL desde otro script SQL?
- 19. Cómo creo un crontab a través de un script
- 20. Cómo usar Group By en Marklogic?
- 21. ¿Cómo creo una migración para una base de datos existente en EntityFramework 4.3?
- 22. ¿Cómo ejecutas SQL desde un script bash?
- 23. ¿Cómo creo una fecha y hora en Python desde milisegundos?
- 24. ¿Cómo creo un HashCode en .net (C#) para una cadena que es segura de almacenar en una base de datos?
- 25. ¿Dónde se almacena la base de datos Derby cuando la creo desde Netbeans?
- 26. Cómo crear una base de datos SQL desde Linq2Sql Modelo
- 27. Cómo restaurar una base de datos desde C#
- 28. ¿Cómo creo un directorio desde Emacs?
- 29. En P4V, ¿cómo creo una rama desde una etiqueta?
- 30. ¿Cómo ejecutar una aplicación interactiva desde Ant script script?
Gracias por el enlace. estamos usando 5.x. Para empezar, traté de importar el servidor de aplicaciones en un xml y obtuve un paquete xml. El siguiente paso fue instalar el paquete. Usé el paquete: install (fn: doc ("/ xdbcserver.xml")) ..... El problema es que se espera que el archivo con uri /xdbcserver.xml esté presente en la base de datos. Esto significa que alguien tiene que ponerlo allí manualmente. Es un poco contradictorio con el propósito de automatizar la configuración. Me gustaría tener una función que cargue el paquete del sistema de archivos del cliente en lugar de un documento existente en la base de datos. ¿Alguna pista? Gracias de nuevo – uttamkini