Una aplicación que es distribuida por diversos medios (sea web o de escritorio), debe ser fácilmente instalable. Por lo que no se puede dejar de forma manual algunos aspectos que se dan por sentados cuando se esta desarrollando, los cuales son:
La estructura de la base de datos (desde ahora bd), los usuarios de esa base, y los registros iniciales.
Los que se cargan directamente en algun administrador para tales efectos como Toad o PhpMyAdmin.
Pero si uno desea distribuir la aplicación es bastante fome que el usuario este instalando la bd, por lo que la aplicación debe tener un instalador. Por este motivo me he propuesto desarrollar un instalador, si es que no encuentro uno open source antes que me solucione el problema.
1.De partida cuando se esta instalando la aplicación se debe determinar si es que la bd esta o no. Ante lo cual le debemos pasar al motor de bd (MySql en este caso) algunos parametros que son un tanto sencibles. La clave de root o administrador. ¿Serias capaz de dejar el acceso a tu web en un texto plano?. Ni lo pienses. Por lo que hay un elemento de seguridad que considerar en el desarrollo.
2. Una vez creada la bd se deben crear las tablas, los indices de estas,etc.
3. Se debe crear el usuario de la bd.
De acuerdo a esto tendriamos un pseudo codigo mas o menos asi (trabajo sobre una version 4 de MySql y una versión 4 de PHP):
$basedatos = “prueba”;
if (!existe_base_datos($basedatos)){
crear_base_datos($basedatos);
} else{
if (!existe_tabla($tabla)){
crear_tabla($tabla);
}
}
Quisiera dejar todos las sentencias sql en un archivo y desde ahy crear la bd, he visto en algunos instaladores que en un solo archivo esta todo tablas, registros, consultas. Definitivamente no me gusta algo asi, quiero un instalador que me sirva para muchas aplicaciones sin hacer mayores cambios.
Algunos snippets para tales efectos:
Consultar si existe base de datos, sino esta se crea.
$server = “server”;
$usuario = “usuario”;
$password = “password”;
$basedatos = “bd”;
$aplicación = “app”;
if (!($link=mysql_connect($server,$usuario,$password)))
{
echo “Error conectando a la base de datos.”;
exit();
}
if (!mysql_select_db($basedatos,$link))
{
mysql_query(”CREATE DATABASE $basedatos”);
echo “Base de datos ” . $basedatos . ” creada”;
exit();
}
?>
Esta es la primera entrega …. mientras investigo mas sobre como hacer un instalador de aplicaciones web mas profesional. Si alguien esta en el mismo proyecto que yo favor, comunicarse a mi email develmarcos@hotmail.com.