¿Es posible? ¿Puedo especificarlo en la URL de conexión? ¿Como hacer eso?¿Es posible especificar el esquema cuando se conecta a postgres con JDBC?
Respuesta
Sé que esto ya fue respondida, pero me acabo de encontrar con el mismo problema tratando de especificar el esquema a usar para la línea de comando liquibase.
De acuerdo con esto: http://web.archive.org/web/20141025044151/http://postgresql.1045698.n5.nabble.com/Patch-to-allow-setting-schema-search-path-in-the-connectionURL-td2174512.html
puede especificar el URL de esta manera:
jdbc:postgresql://localhost:5432/mydatabase?searchpath=myschema
actualización A partir de 9.4 puede especificar la dirección URL con el nuevo parámetro currentSchema así:
jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema
No creo que haya una forma de especificar el esquema en la cadena de conexión. Parece que tiene que ejecutar
set search_path to 'schema'
después de que la conexión se realiza para especificar el esquema.
Esto funcionó para mí, en concreto con el ejemplo "Conexión" para ejecutar: declaración 'Declaración Connection.createStatement =(); try { statement.execute ("establecer ruta de búsqueda en '" + esquema + "'"); } finally { statement.close(); } ' – romeara
Hay una manera de especificar el esquema predeterminado en la cadena de conexión (jdbc uri). Ver respuestas a continuación. –
Si es posible en su entorno, también se puede configurar esquema predeterminado del usuario para su esquema deseado:
ALTER USER user_name SET search_path to 'schema'
Envíe Una versión actualizada de un parche para el controlador PostgreSQL JDBC para permitir esto hace unos años. Vas a tener que construir el controlador JDBC de PostgreSQL desde la fuente (después de añadir en el parche) se usa:
http://archives.postgresql.org/pgsql-jdbc/2008-07/msg00012.php
No se olvide SET SCHEMA 'myschema'
que se podría utilizar en un estado separado
SET SCHEMA 'valor' es un alias para el valor de SET search_path TO. Solo se puede especificar un esquema con esta sintaxis.
Y desde la versión 9.4 y posiblemente versiones anteriores en el controlador JDBC, se admite el método setSchema(String schemaName)
.
A partir del version 9.4, puede usar el parámetro currentSchema
en su cadena de conexión.
Por ejemplo:
jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema
¡Esta es la única! –
DataSource
- setCurrentSchema
Cuando una instancia de una aplicación DataSource
, buscar un método para establecer el esquema/predeterminado actual.
Por ejemplo, en la llamada de clase PGSimpleDataSource
setCurrentSchema
.
org.postgresql.ds.PGSimpleDataSource dataSource = new org.postgresql.ds.PGSimpleDataSource ();
dataSource.setServerName ("localhost");
dataSource.setDatabaseName ("your_db_here_");
dataSource.setPortNumber (5432);
dataSource.setUser ("postgres");
dataSource.setPassword ("your_password_here");
dataSource.setCurrentSchema ("your_schema_name_here_"); // <----------
- 1. Mostrar el nombre de la aplicación en Información de sesión cuando se conecta a través de JDBC
- 2. JDBC- postgres, conexión rechazada
- 3. Postgres UTF-8 clobs con JDBC
- 4. ¿Cómo cambiar el esquema a través de la cadena de conexión cuando se conecta a Oracle utilizando Entity Framework?
- 5. ¿Es posible especificar el host cuando se inicia sesión en phpMyAdmin?
- 6. PoolTimeoutException cuando se conecta a Cassandra a través de Astyanax
- 7. Detectar cuando se conecta una nueva pantalla
- 8. Usando GitHub Pages, ¿es posible especificar el directorio web raíz cuando no se usa Jekyll?
- 9. ¿Es posible la llamada jdbc asincrónica?
- 10. Problema con VisualVM: cuando se conecta al host remoto
- 11. xdebug no se conecta con el cliente?
- 12. Problemas de los raíles cuando se conecta a la base de datos PostgreSQL
- 13. Conexión Postgres JDBC en Eclipse Ayuda
- 14. Una conexión persistente con JDBC a MySQL
- 15. ¿A dónde se conecta RACK?
- 16. La aplicación Java implementada en Tomcat no se conecta a jdbc-mysql
- 17. ¿Por qué es necesario "fork" por socat cuando se conecta a un servidor web?
- 18. Consulta de postgres de JDBC con un tiempo de espera
- 19. PyQt enviando el parámetro a la ranura cuando se conecta a una señal
- 20. ¿Cómo es que sqlplus no se conecta?
- 21. ¿evento de emisión de linux cuando el monitor se conecta con el conector D-sub?
- 22. ¿Es posible llamar a una función definida por el usuario sin el nombre del esquema?
- 23. ¿Es posible especificar el formato de visualización para un dijit.form.DateTextBox
- 24. ¿Es Postgres mejor que MySql cuando se necesita agregar una columna a una tabla con millones de filas?
- 25. ¿Es posible especificar el registrador para ant dentro de build.xml?
- 26. ¿Qué ha cambiado entre postgres jdbc 8.4 y 9 con respecto a bytearrays?
- 27. Cómo recibir eventos cuando se conecta a la red y también cuando usuario inicia sesión en
- 28. consulta lenta cuando se conecta al servidor vinculado
- 29. Cómo listar las relaciones en el esquema postgres
- 30. Usando Postgres con Grails
Sí, pero en el momento de la redacción (finales de 2012) no forma parte del [controlador 9.1] (http://jdbc.postgresql.org/documentation/91/), consulte: [Parámetros de conexión] (http://jdbc.postgresql.org/documentation/91/connect.html#connection-parameters). – user272735
¿Lo has intentado? Porque no figuraba como parte del controlador anterior pero aún funcionaba. – Hiro2k
Intenté con 9.3-1101-jdbc41 y 9.1, no funciona para mí –