2010-03-12 14 views
6

¿Hay alguna forma de acelerar el comando createdb de PostgreSQL?Acelerar PostGreSQL createdb?

Normalmente no me importa, pero hacer pruebas unitarias en Django crea una base de datos cada vez, y demora unos 5 segundos.

estoy usando openSUSE 11.2 64 bits, PostgreSQL 8.4.2

Respuesta

5

No te va a ayudar ahora, pero no ha habido algo de trabajo en torno a este en PostgreSQL 9.0.`

Lo que se puede tratar como una solución es ejecutar con fsync = apagado. Por supuesto, ni siquiera piense en hacer esto si tiene datos reales en su base de datos, pero si solo se ejecuta en un sistema de prueba, eso hará que CREATE DATABASE ejecute un lote lote más rápido.

+1

Just tested createdb en Postgres comenzó con la opción "-F": menos de 0,2s. Para las pruebas unitarias, fsync = off debería ser bueno. – Tometzky

1
  • Si Django supported postgres schemas entonces simplemente podría descartar el esquema en cuestión & recrearlo en lugar de matar a toda la base de datos.
  • Todavía puede usar DROP OWNED BY ... CASCADE para colocar todos los objetos creados por el usuario configurado en Django, devolviendo la base de datos a una condición esencialmente prístina. Vea cuánto más rápido es esto.
  • Puede cerrar Postgres y luego deshacer una copia de seguridad de base de datos existente en lugar de ejecutar initdb. Vea cuánto más rápido es esto.