Buenas Tardes a todos en la lista. Tengo una duda con respecto a pg_dump y pg_restore, posiblemente alguno de ustedes ya vio esto.
existe alguna forma de copiar un esqema (ej : "public") de una base de datos "bd_origen" a otra base de datos "bd_destino" y ademas decirle el nombre del esquema con el que se va a copiar ("ej: esquema_nuevo") de tal forma que el esquema "public" de mi BD "bd_origen" se guarde en mi BD "bd_destino" en el esquema "esqema_nuevo". buescando en la red, encontre que podia hacerlo generando y restaurando backups utilizando pg_dump y pg_restore . No tuve ningun problema al generar el backup y tampoco tuve complicacion al restaurar el esqema que necesitaba todo esto desde JAVA. Este es el codigo java que me genera el backup completo (Esto por que lei en algunos foros que es mejor hacer un backup completo ya que te da mas opciones al momento de restaurarlo) ProcessBuilder pb; Process p; pb = new ProcessBuilder("/opt/PostgreSQL/9.2/pgAdmin3/bin/pg_dump", "-i", "-h", "192.168.1.107", "-p", "5432", "-U", "postgres", "-F", "c", "-b", "-v" , "-f", "/home/ptt/Escritorio/copia_bd_origen.backup", "bd_origen"); pb.environment().put("PGPASSWORD", "123456"); pb.redirectErrorStream(true); p = pb.start(); este es el codigo que lo restaura donde le especifico que solo me restaure el esquema "public" pb = new ProcessBuilder("/opt/PostgreSQL/9.2/pgAdmin3/bin/pg_restore", "-h", "localhost", "-p", "5432", "-U", "postgres", "-d", "bd_destino", "-n", "public", "-c", "-e", "-v", "/home/ptt/Escritorio/copia_bd_origen.backup"); pb.environment().put("PGPASSWORD", "123456"); pb.redirectErrorStream(true); p = pb.start(); después de haber restaurado revise si se había restaurado de forma correcta y vi que todo estaba bien a excepción de las funciones ya que en la BD "bd_destino" no estaban todas las funciones que tenia en la "bd_origen", revisando encontré que se trataban de algunas funciones especiales que utilice para crostab y eran esas las funciones que faltaban NOTA: también probé en restaurar toda la BD por si me había equivocado al hacer el backup, pero cuando restaure el backup completo ahí si están todas las funciones incluyendo las funciones de crostab. El problema solo ocurre cuando especifico que se restaure el esquema "public" que es el que tiene las funciones para crostab pero no las restaura. es en este punto del cual no puedo pasar y recurro a ustedes por su ayuda. 1: existe alguna forma de solucionar el problema de las funciones faltantes (que me copie todas las funciones incluyendo las funciones especiales como las del crostab) 2: existe alguna forma para especificarle que el esquema que quiero restaurar se restaure un esquema que yo le defina. tal vez la solución que eh usado no es la mas adecuada y existen otras formas para hacerlo. tal vez exista otras formas para copiar esquemas ya sea entre base de datos o en la misma base de datos. De antemano muchas gracias. Atte: Roberto Almanza