Migración de datos de sqlite3 a MySQL

4 July, 2008 | Comentarios (0)

Es algo común que estés desarrollando contra un gestor de bases de datos de “juguete” como puede ser sqlite3 y en un momento dado querer pasar a uno “de verdad” para probar cuanto rendimiento tiene tu app.

En este caso y como reza el título explico como hacer la migración de sqlite3 a MySQL, que resulta bastante trivial.

SQLite a MySql

  1. Se hace un dump de la bbdd que queremos
    sqlite3 BasedeDatosaExportar .dump .quit >>fichero-dump.sql
  2. Ahora toca adaptarla a la sintaxis expecial de MySQL
    - Reemplazar ” (comillas dobles) por ` (acento grave)
    - Elimina “BEGIN TRANSACTION;” “COMMIT;“, y las líneas “sqlite_sequence
    - Substituye “autoincrement” con “auto_increment
  3. Y el fichero ya está listo para importar en MySQL.

Facil y bonito oye.

Archivado en... General

dotfiles para Unix/Linux

4 July, 2008 | Comentarios (0)

A veces encuentras perlas por internet gracias a las cuales aprendes más que leyendo libros.

En esta ocasión he encontrado una web que recompila ficheros de configuración de muchísima gente con buscador incorporado. http://dotfiles.org/

Ya conocía en GitHub un proyecto conjunto donde todos los usuarios creaban un repositorio en git donde colgaban sus ficheros .files, y la verdad es que ayuda mucho sobre todo encontrar ficheros de configuración de autenticos gurús en distintos campos. Si os interesa aquí teneis una lista en github.

Archivado en... General

Gestión de Branches y Tags con Git (II)

13 June, 2008 | Comentarios (1)

Continuo la serie de articulos sobre Git, echa un vistazo a la anterior entrega donde hablamos de creción de repositorios y una pequeña introducción. En esta ocasión indagaré un poco más en el ciclo de vida de nuestro software donde mostraré como crear branches, tags y como Git gestiona todo esto de manera increíble y es realmente lo que lo hace, bajo mi punto de vista, el mejor SCM que he probado.

Internalidades de Git

Git internamente gestiona los distintos commits en forma de arbol, donde cada “hoja”, que el llama blob son los distintos archivos en un instante determinado y los “nodos”, que llama tree son los distintos directorios. Siguiendo este esquema la gestión del repositorio se simplifica mucho.
Esquema del arbol de repositorio de GitEn el esquema anterior podemos ver como se pueden diferenciar 2 arboles de objetos y nodos distintos, el primero que referenciamos mediante un tag (con una rama descendente única y que contiene dos directorios y un archivo), y el segundo sería exactamente el mismo arbol anterior pero añadiendole un nuevo archivo. Además el segundo es la copia actual en nuestro directorio de trabajo.

Creación de Tags

Entonces y deduciendo un poco la creación de tags en Git es inmediata, basta crear un “puntero” que nos apunte, valga la redundancia, a el commit deseado.
$git-tag -a nombre-tag -m "Creación de Tag nombre-tag"
Si no proporcionas el parámetro -m, simplemente se abrirá tu editor $EDITOR y podrás proporcionar una descripción a el tag en cuestión.
Se pueden hacer múltiples acciones sobre un tag, en el caso anterior se crea un tag sin firmar con GPG pero podemos hacerlo firmado (con el parametro -s) para la posterior identificación de su creador. Para llevar a cabo el firmado se usa el parámetro signingkey de nuestro .gitconfig

  1. [user]
  2.     signingkey =

También podemos eliminar un tag con el parámetro -d, y demás. git-tag(1)
Por lo tanto la creación de Tags como hemos visto es sencilla y directa, y lo más importante sin crear copias innecesarias de archivos.

Leer más →

Control de versiones con Git (I)

4 June, 2008 | Comentarios (1)

En el ciclo de vida de un producto software siempre se debe contar con herramientas que nos faciliten la ayuda a los desarrolladores, y en ese sentido los sistemas de control de versiones, como Subversion, CVS o Mercurial, son de utilización obligatoria aunque desarrolle sólo una persona.
En este post relataré mi experiencia con un sistema de control de versiones que lleva ya algun tiempo haciendo ruido en internet y que ciertamente, adelanto ahora mismo, supone un paso adelante en los sistemas de control de versiones y en particular en su gestión de branches.
Yo venía utilizando Subversion y como todos veía muy pobre su sistema de gestión de tags y branches y el intercambio entre ellos, obligandote a mantener varias copias de todo un proyecto para cada branch y para tag.
Git a diferencia de otros SCMs permite commits locales y remotos, no hace falta conexión permanente con un repositorio central, porque simplemente ese repositorio no existe, en cambio la funcionalidad del mismo se distribuye en distintos equipos sin una jerarquía especial.
Si bien no existe un servidor central, si tenemos la posibilidad de definir varios repositorios remotos desde los cuales sincronizar todos los commits entre distintas personas, para tal ejemplo tenemos github.com que ofrece servicio gratuito para proyectos de fuente abierta o servicios de pago para repositorios privados.

Uso de Git

El primer paso despues de instalar Git es configurarlo para identificarnos, para eso con un simple
$ git config --global user.name "Tu nombre"
$ git config --global user.email "direccion@dominio.tld"

configuramos nuestro nombre. Para ver más parametros de configuración pasaros por aquí git-config(1).

Para configurar un poco el comportamiento de git y sus diferentes acciones podeis editar el archivo general ~/.gitconfig que teneis en vuestro directorio home:

  1. [user]
  2.     name = James Bowes
  3.     email = MY_EMAIL
  4.  
  5. [alias]
  6.     ci = commit -a
  7.     co = checkout
  8.     st = status -a
  9.     praise = blame
  10.  
  11. [apply]
  12.     whitespace = strip
  13.  
  14. [diff]
  15.     color = auto
  16.     rename = copy
  17.  
  18. [pager]
  19.     color = true
  20.  
  21. [status]
  22.     color = auto

Para la creación de un repositorio git simlemente tenemos que ejecutar en consola el siguiente comando dentro de la carpeta que queremos controlar:
$mkdir repositorio; cd repositorio;
$ git init

Leer más →

Archivado en... Programación Software