Tengo una base de datos postgres con múltiples esquemas. Cuando me conecto a la base de datos desde un shell con psql
y lo ejecuto \dt
, utiliza el esquema de conexión predeterminado que es público . ¿Hay una bandera que pueda especificar o cómo puedo cambiar el esquema?
postgresql
psql
mehany
fuente
fuente
Respuestas:
En PostgreSQL, el sistema determina qué tabla se entiende siguiendo una ruta de búsqueda, que es una lista de esquemas para buscar.
Se considera que la primera tabla coincidente en la ruta de búsqueda es la deseada, de lo contrario, si no hay coincidencia, se genera un error, incluso si existen nombres de tabla coincidentes en otros esquemas en la base de datos.
Para mostrar la ruta de búsqueda actual, puede usar el siguiente comando:
Y para poner el nuevo esquema en el camino, puede usar:
O si quieres múltiples esquemas:
Referencia: https://www.postgresql.org/docs/current/static/ddl-schemas.html
fuente
¿Quieres cambiar la base de datos?
Actualizar.
He vuelto a leer tu pregunta. Para mostrar esquemas
Para cambiar el esquema, puedes intentar
fuente
fuente
Utilice el nombre del esquema con punto en el comando psql para obtener información sobre este esquema.
Preparar:
Mostrar lista de relaciones en
test_schema
:Mostrar
test_schema.test_table
definición:Mostrar todas las tablas en
test_schema
:etc ...
fuente
Esto es antiguo, pero puse exportaciones en mi alias para conectarse a la base de datos:
Y para otro esquema:
fuente
export
el punto y coma en sus alias. De esta maneraPGOPTIONS
no se queda después de salir de psql.SET search_path
a cada consulta. ¡gracias!palabra clave:
ejemplo:
fuente
La solución rápida podría ser:
fuente
si juegas con psql dentro de docker exec así:
fuente