Oracle APEX con Vagrant
Tags: oracle, spanish, apex, virtualbox
Published: 2021-02-15 03:29:04

En la [publicación](https://dev.to/jeanomobono/oracle-xe-con-vagrant-151b) anterior donde les explicaba como hacer la instalación de Oracle XE 18c usando Vagrant y VirtualBox, les presentaba mi opinión de por qué me parece más apropiado usar la virtualización para la creación de estos ambientes de trabajo. En esta oportunidad vamos a usar la misma metodología para hacer la instalación de Oracle APEX.

# Oracle Application Express
O simplemente [APEX](https://apex.oracle.com/es/), es una plataforma de desarrollo de código bajo (*low-code*) desarrollada por Oracle para interactuar directamente con la base de datos, y que además permite crear aplicaciones completas en muy poco tiempo. Es una plataforma donde casi todo el desarrollo se realiza de forma declarativa (cambiando propiedades a los elementos de la aplicación) con una interface muy intuitiva, y que a su vez permite hacer personalizaciones más avanzadas ya sea mediante PL/SQL o JavaScript.

Hay diversas formas de empezar a trabajar con APEX:

- Instalación de APEX en la base de datos de tu compañía (on-premise)
- Solicitar un espacio de trabajo gratuito en [apex.oracle.com](https://apex.oracle.com/pls/apex/f?p=4700:2:106848511761991:::RP::)
- Crear una cuenta en la [capa gratuita](https://www.oracle.com/cloud/free/) de Oracle Cloud
- Instalar una VM con todo lo necesario para trabajar de manera local

Cada una de estas opciones tiene sus ventajas y características. En este artículo veremos la última opción, trabajar de manera local.

# Preparar los archivos
En esta oportunidad asumiré que ya tienen instalado Virtualbox y Vagrant en sus equipos y que ya descargaron o clonaron el repositorio de los scripts preparados por Oracle. Nuevamente el ejemplo lo haremos sobre un equipo anfitrión con Ubuntu 20.04, sin embargo estas instrucciones deberían funcionar igual en otros sistemas operativos.

Lo primero es conseguir desde la página web de Oracle los instaladores de cada uno de los componentes (esto deben hacerlo solo una vez):

- Archivo rpm para la instalación de Oracle XE: [https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html](https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html)
- Oracle APEX: [https://www.oracle.com/tools/downloads/apex-downloads.html](https://www.oracle.com/tools/downloads/apex-downloads.html)
- Oracle Rest Data Services (ORDS): [https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads.html](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads.html)

[ORDS](https://www.oracle.com/database/technologies/appdev/rest.html), por si no lo han visto antes, crea un puente entre HTTP y tu base de datos, te permite crear REST API endpoints sobre los que puedes crear solicitudes en tus aplicaciones y extraer o procesar información de la base de datos.

Al finalizar la descarga deben colocar todos los archivos en `vagrant-projects/OracleAPEX`.

![Archivos iniciales instalación](https://dev-to-uploads.s3.amazonaws.com/i/rhjiqu6phz9asy9pz469.png)

Una vez que los archivos estén en su sitio, solo deben ejecutar el comando `vagrant up`.

![Iniciar el proceso con vagrant up](https://dev-to-uploads.s3.amazonaws.com/i/98eqcz7m0u3u8kxldnkx.png)

El proceso de instalación puede tardar un buen rato dependiendo de su conexión a internet, la capacidad del equipo, etc.

![Proceso de instalación](https://dev-to-uploads.s3.amazonaws.com/i/te2a98ppl65gevm2sau9.png)

Una vez terminado el proceso de instalación, tomen nota de la información de conexión, recuerden que las contraseñas son autogeneradas pero se pueden cambiar luego de terminar el proceso.

Abran su navegador de preferencia y vayan a la URL indicada en el instalador, por lo general será [http://localhost:8080/ords](http://localhost:8080/ords)

![Página de inicio APEX](https://dev-to-uploads.s3.amazonaws.com/i/9atbch16tcs4reo1pl0s.png)

Si todo está bien, deberían ver la página inicial de APEX en su equipo. La primera vez, dado que aun no han creado un espacio de trabajo, deben ingresar la siguiente información:

- Workspace: internal
- Username: admin
- Password: la contraseña generada por el instalador

La primera vez que ingresen les pedirá que cambien la contraseña, asegúrense que sea una contraseña segura con al menos una mayúscula, números y un signo de puntuación. Una vez que hagan el cambio los llevará a la pantalla de bienvenida para crear su primer espacio de trabajo.

En APEX un **espacio de trabajo** es un compartimento lógico, una especie de base de datos privada que permite a los desarrolladores trabajar con una misma aplicación de APEX manteniendo privados sus propios objetos, datos y aplicaciones. El primer espacio de trabajo creado por defecto se llama **internal**, es un espacio de trabajo especial donde no se pueden crear aplicaciones ya que es el sitio de administración de APEX.

Pudieran crear un espacio de trabajo por usuario, o por proyecto, eso dependerá totalmente de sus necesidades.

![Página de bienvenida a APEX](https://dev-to-uploads.s3.amazonaws.com/i/rgdlr9uxxsqfddx4fsqt.png)

Hagan clic en *Create Workspace*, esto los llevará a la pantalla donde deben indicar los datos básicos del espacio de trabajo.

![Datos espacio de trabajo](https://dev-to-uploads.s3.amazonaws.com/i/iiq7a82sky3be3q1533m.png)

En mi caso simplemente voy a crear un espacio de trabajo llamado *testing*. Presionen *Next* para continuar a la siguiente pantalla.

![Datos esquema del espacio de trabajo](https://dev-to-uploads.s3.amazonaws.com/i/gwuao0p5fcotjv8igbnb.png)

Un espacio de trabajo está asociado a un esquema de la base de datos. Pueden reutilizar un esquema ya existente (seleccionando **Yes** en *Re-use existing schema?*) o pueden crear un nuevo esquema y en esta pantalla colocaran los datos del mismo. En mi caso particular crearé un esquema con el mismo nombre del espacio de trabajo (recuerden que el nombre del esquema debe seguir las reglas de nombres de cualquier esquema/usuario que creen en la base de datos). Al introducir todos los datos presionen *Next* para continuar a la siguiente pantalla.

![Credenciales administrador espacio de trabajo](https://dev-to-uploads.s3.amazonaws.com/i/dn2tsdy4mdhkjoht1qgu.png)

Luego deben dar los datos del administrador del espacio de trabajo. En el campo *Username* coloquen el nombre de usuario que usaran para conectarse como administrador (por lo general es **admin** pero pueden poner lo que quieran), una contraseña, nombre, apellido y dirección de correo electrónico.

La pantalla final les mostrará un resumen de los datos que colocaron para crear el espacio de trabajo, simplemente hagan clic en *Create Workspace* para finalizar.

Luego de un pequeño instante les mostrará la confirmación de la creación del espacio de trabajo, junto con la información sobre las estructuras de almacenamiento del usuario recién creado.

![Espacio de trabajo creado](https://dev-to-uploads.s3.amazonaws.com/i/sq6roezzvjlevqff11ss.png)

Al presionar el botón *Done* los llevará a la página de administración de los espacios de trabajo. Ya pueden cerrar esta sesión para ingresar al espacio de trabajo recién creado. Simplemente hagan clic en la parte superior derecha, donde aparece el nombre del usuario y en el menú emergente hagan clic en *Sign out*. Al salir, hagan clic en el botón verde para volver a la pantalla de inicio y ahora coloquen la información que usaron para crear su propio espacio de trabajo.

![Ingresar al espacio de trabajo](https://dev-to-uploads.s3.amazonaws.com/i/07sah463rbqz05jzxntg.png)

Es muy probable que la primera vez que ingresen les solicite que cambien la contraseña.

![Espacio de trabajo](https://dev-to-uploads.s3.amazonaws.com/i/oa3meqs61wlj3bzbu57r.png)

¡Y ya está! Finalmente están en un espacio de trabajo en blanco donde pueden empezar a crear aplicaciones desde cero. Si lo desean pueden ingresar a **App Gallery** para ver aplicaciones de demostración totalmente funcionales y que pueden servirles de base para sus propios proyectos.