Phing requiere de un único archivo que deberemos crear en el directorio phing:
- build.xml, en el cual se definen las tareas a realizar
El archivo tendrá la misma estructura para todos los proyectos de Klear, ya que las acciones son las mismas. El link de descarga es este: build.xml
Nota
El archivo varía dependiendo de que acciones hay que ejecutar, por lo que habrá que ir revisando que no haya cambiado la implementación de Klear y con ello el build.xml . De ser así hay que actualizar el fichero.
La última versión de build.xml, tiene soporte para parámetros
$ phing db-change -De=development
$ phing db-change -Dk=/remoteKlear
$ phing db-change -Da=../admin/application
Es buena idea editar la copia local de build.xml en cada proyecto con los valores en producción:
<!-- command line switch >> -Dk=/remoteKlear -->
<property name="klear.base" refid="k" fallback="/opt/klear" />
<!-- command line switch >> -Da=../web/application -->
<property name="application.path" refid="a" fallback="../web/application" />
<!-- command line switch >> -De=development -->
<property name="application.env" refid="e" fallback="production" />
Así ejecutaremos en producción tranquilamente:
$ phing migrate
Para no tener que acordarse se los argumentos de consola cada vez que ejecutamos phing en desarrollo, se puede crear un pequeño script:
$ echo "phing \$1 -De=development -Dk=/remoteKlear -Da=../admin/application" > dev-phing; chmod a+x dev-phing
Luego, en desarrollo simplement ejecutaríamos:
$ ./dev-phing db-change
Antes de inicializar Phing hay que crear la base de datos con la que vamos a trabajar:
$ mysql -uroot -ppass -e "CREATE DATABASE nuevoproyecto"
Luego en /web/application/configs/application.ini añadimos los datos de la base de datos para development. .. code-block:: console
resources.db.adapter = “MYSQLI” resources.db.params.dbname = “nuevoproyecto” resources.db.params.username = “root” resources.db.params.password = “farsa” resources.db.params.host = “localhost”
Después creamos el archivo predeploy.sql con las órdenes iniciales en el directorio phing.
CREATE TABLE changelog (
change_number BIGINT NOT NULL,
delta_set VARCHAR(10) NOT NULL,
start_dt TIMESTAMP NOT NULL,
complete_dt TIMESTAMP NULL,
applied_by VARCHAR(100) NOT NULL,
description VARCHAR(500) NOT NULL
) COMMENT '[ignore]';
ALTER TABLE changelog ADD CONSTRAINT Pkchangelog PRIMARY KEY (change_number, delta_set);
Una vez está todo configurado sólo deberemos ejecutar los siguientes comandos en el mismo directorio:
$ mkdir -p deltas deploy/scripts
$ phing init