viernes, 7 de diciembre de 2012

Consideraciones al renombrar una tabla en PostgreSQL

Renombrar una tabla es algo sencillo, simplemente hacemos uso del comando ALTER TABLE:

ALTER TABLE nombre_actual RENAME TO nuevo_nombre;

Sin embargo, este comando sólo renombra la tabla mientras los nombres de sus índices, secuencias, llaves foráneas y otros constraints permanecen iguales. Esto podría no ser un problema, pero si estos nombres son parte del diseño de la BD y queremos cambiarlos, deberemos renombrar los índices y secuencias uno por uno:

miércoles, 5 de diciembre de 2012

Evitar errores en búsquedas sobre campos de texto con mayúsculas y minúsculas en PostgreSQL

Si los campos de texto se almacenan con mezclas de mayúsculas y minúsculas, las búsquedas se ven afectadas y podrían no entregar los resultados que esperamos. Para ilustrarlo supongamos que tenemos una tabla llamada 'persona' con un campo 'nombre', en el que almacenaremos la información introducida por un usuario mediante un formulario y que no procesaremos dicho campo, por lo que el usuario podrá ingresar el texto usando mayúsculas y minúsculas. Luego de varios ingresos tendremos los siguientes datos:

viernes, 5 de octubre de 2012

Error al cargar backup de PostgreSQL 9.1 a 8.4 con funciones que usen PL/pgsql

Al querer cargar un archivo de backup desde una versión más reciente a una anterior siempre surgen problemas. Este es uno de ellos si cargamos un archivo de backup hecho con pg_dump desde la versión 9.1 a una versión anterior y tenemos funciones (tal vez triggers) programados con PL/pgsql. A mí me sucede porque mi máquina de trabajo tiene un Fedora 17 y mi servidor tiene Debian 6. Al intentarlo aparecerá el siguiente error:

ERROR: error de sintaxis en o cerca de «EXTENSION»
LÍNEA 1: CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalo...

Y no creará las funciones que dependan de este lenguaje.

martes, 25 de septiembre de 2012

Extender la capacidad del historial de la consola linux

El valor por defecto del número de líneas del historial de la consola depende de la distribución pero por lo general es de 500 líneas. Si queremos aumentar ese número lo que haremos será editar el archivo .bashrc situado en la raíz del directorio de nuestro usuario y agregar la siguiente línea al final del archivo:

# bash history debería guardar 3000 comandos:
export HISTFILESIZE=3000

Además podemos optimizar esos comandos guardados, haciendo que se eliminen los comandos repetidos en forma consecutiva con la siguiente línea:

# No colocar líneas repetidas en el historial:
export HISTCONTROL=ignoredups

Ahora, reiniciar la terminal y listo!

viernes, 21 de septiembre de 2012

Las extensiones de Gnome-shell imprescindibles para mí

En el post anterior hablé de las gnome-shell extensions, la forma que nos ofrece Gnome de personalizar nuestro entorno gráfico. De paso quisiera agradecer desde acá a aquellos que se han tomado el tiempo de programar estas extensiones y devolvernos algo de lo que hemos perdido con el nuevo gnome-shell.

Ahora sí daré el listado de mis extensiones favoritas e indispensables para mí:

Como mejorar Gnome-shell con extensiones

Con el nuevo Gnome Shell tenemos un entorno gráfico atractivo pero no viene sin sus problemas y es que la gente de Gnome ha hecho algunas cosas que parecen no tener mucho sentido. Entre los cambios en la interfaz que no me gustan nada están:

  • Quitar la opción de apagado, WTF!: Ahora sólo tenemos la opción de suspender y para ver la opción para apagar debemos oprimir la tecla Alt mientras pasamos el cursor sobre la opción suspender. Esto es simplemente absurdo!
  • La 'HotCorner': Es realmente molesto que cada vez que pasa el cursor sobre el texto Actividades automáticamente vemos el efecto que nos saca del escritorio para entrar a la zona de actividades. Y es que suele pasar por accidente y tenemos que volver al escritorio. Molesto!
  • ¿Dónde está el menú de aplicaciones?: Si queremos usar alguna aplicación tenemos que ir a la zona de Actividades y allí escoger la opción de aplicaciones. ¿Acaso no había espacio en la barra superior? Otro WTF para los de gnome.

Afortunadamente para facilitarnos la vida están las extensiones de gnome-shell, con las que podemos mejorar nuestra experiencia de usuario con este entorno gráfico.

viernes, 13 de julio de 2012

Porqué usar llaves primarias autoincrementables

En un post anterior explicaba una ventaja de los campos autoincrementables, pero además de ésta existen otras razones que hacen que sea una buena práctica incluir un campo autoincrementable como llave primaria (PK) en cada tabla.

Incluir campos autoincrementables como llaves primarias en cada tabla de una base de datos tiene varias ventajas, que hacen que usarlas sea una buena práctica. Veamos algunas de esas buenas razones:

  1. Facilita la obtención del último registro insertado.

Instalación y arranque de PostgreSQL en Fedora 17

Para usar el mejor servidor de Bases de Datos SQL en la nueva versión de Fedora deberemos llevar a cabo un par de sencillos pasos, que varían un poco respecto a la versión anterior, estos comandos habrá que ejecutarlos como root o mediante el comando sudo:
  • Instalar:

    # yum install postgresql postgresql-server

  • Inicializar la BD, usando el nuevo script postgresql-setup:

viernes, 29 de junio de 2012

Cambiar directorio de letras de canciones en rhythmbox en Fedora 17

En versiones anteriores, el plugin de lyrics de rhythmbox permitía configurar el directorio en el que se almacenaban los archivos de letras, pero en las últimas versiones (que he probado con Fedora 16 y Fedora 17) esta opción no está activa, lo cual puede ser molesto si se tiene un directorio en el que hemos almacenado las letras de las canciones que nos gustan.

Ahora rhythmbox define automáticamente el directorio dentro del directorio cache del usuario (/home/usuario/.cache/rhythmbox/lyrics), lo cual es incluso más molesto si queremos usar los mismos archivos ya descargados para varios usuarios.

La solución es bastante sencilla:

sábado, 23 de junio de 2012

Agregar resolución de monitor en Fedora 17

Bueno, luego de actualizar a Fedora 16 hace poco, decidí volver a actualizar a Fedora 17 porque, la verdad sea dicha, no me gustó mucho Verne.

Como de costumbre, lo primero que tengo que hacer es configurar mi monitor LG para que reconozca su resolución de 1360x768. Pero esta vez decidí no hacerlo según mi método anterior usando los drivers propietarios de Nvidia, dado que no me funcionaron muy bien con Verne.

En realidad el proceso es bastante sencillo, una vez se sabe cómo hacerlo :)

lunes, 26 de marzo de 2012

Obtener el último registro insertado en una tabla en PostgreSQL

Podría parecer algo muy sencillo pero la verdad es que a veces puede no serlo tanto, sobretodo si no tuvimos en cuenta esto en el diseño de la BD. Según la tabla podemos encontrarnos con 2 posibilidades:

  • Tablas sin campo único autoincrementable
  • Tablas con campo único autoincrementable

Veamos cada una en detalle: