GNU/Linux >> Tutoriales Linux >  >> Linux

¿Puede explicar cómo exportar y luego importar PostgreSQL usando phpPgAdmin? (¿Y qué pasa con los permisos?)

Exportar

  1. Iniciar sesión
  2. Navega a la pestaña "Exportar"
  3. Haga clic en el botón de opción "Estructura y datos"
  4. Haga clic en el botón de opción "Descargar"
  5. Haga clic en el botón "Exportar" y guárdelo en su máquina local.

Importar

  1. Navegue a http://www.pgadmin.org/ para descargar pgAdmin III (una de las mejores herramientas GUI gratuitas de Postgres)
  2. Instálelo
  3. Úselo para todas sus necesidades de Postgres.

En lo que respecta a los permisos, simplemente abra el volcado de la base de datos (es texto sin formato) y busque las líneas donde intenta cambiar el usuario actual o establece el propietario de una tabla. Luego simplemente haga una búsqueda/reemplazo y reemplace el propietario original con su nuevo nombre de usuario. No hay necesidad de preocuparse por otorgar/cambiar permisos en absoluto :D

Solíamos tener que hacer esto todo el tiempo al pasar de desarrollo a producción, el propietario original de db/table sería el desarrollador y necesitábamos cambiar eso a la cuenta de clientes una vez que estuviéramos listos para el lanzamiento.

Siempre trabajamos desde la consola usando pg_dump y otras herramientas de línea de comandos relacionadas, pero espero que se correspondan con las opciones que tiene en la interfaz web.


La exportación de phpPgAdmin usa pg_dump. Puedes leer sobre eso si quieres saber qué está haciendo.

También puede exportarlo como SQL en lugar de COPIAR. COPY es para Postgres y necesitará SQL si desea intentar usar una base de datos diferente. También es más fácil de entender si estás acostumbrado a diferentes bases de datos.

Lo que obtendrá con 'Estructura y datos' es un archivo sql que comenzará con la estructura de la tabla de la base de datos, luego todos los datos, luego las restricciones y las claves.

Como ha señalado sascha, es posible que tenga problemas con los permisos. Siempre me ha resultado más fácil simplemente eliminar las líneas de permiso o comentarlas, ya que esto es solo para una base de datos de desarrollo. Eliminar/comentar/cambiar las líneas con 'PROPIETARIO' en ellas. Me gusta

ALTER TABLE schema.table OWNER TO pguser;

Cada declaración CREATE TABLE tendrá una de estas después para establecer el propietario de la tabla.

IMPORTACIÓN

Si tiene errores de SQL (que he visto con bastante frecuencia, dependiendo de los datos. Las cadenas con caracteres impares pueden ser una molestia), podría ser más fácil dividir el archivo y simplemente copiar la estructura primero y ejecutarlo como un estándar Consulta SQL. Luego comience con los datos e impórtelos una tabla a la vez. Hace que sea mucho más fácil encontrar el error cuando lo cortas en partes. Especialmente cuando se trata de mensajes de error muy inútiles.

Sí, es mucho trabajo de copiar y pegar, pero hace el trabajo y probablemente tomará menos tiempo que transferirlo a MySQL y luego tener que cambiar el PHP para conectarse y obtener datos de MySQL en lugar de Postgres.

PhpPgAdmin y pgadminIII tienen la capacidad de ejecutar sentencias SQL.

pgAdminIII -> seleccione la base de datos -> seleccione el botón 'Ejecutar consultas SQL arbitrarias'. PhpPgAdmin -> seleccione la base de datos -> seleccione el enlace 'SQL'.

Honestamente, esta es la forma menos irritante de mover bases de datos que he encontrado. Lleva más tiempo, pero solo si no te encuentras con errores.


Linux
  1. ¿Qué es la Curación de Contenidos y cómo se debe hacer?

  2. ¿Qué puedes hacer con un VPS en la nube de 256 MB por $0,99?

  3. Usando el historial de bash para obtener un comando anterior, cópielo y luego 'ejecútelo' pero con el comando comentado

  4. ¿Qué puede hacer un atacante con Bluetooth y cómo se debe mitigar?

  5. ¿Qué significa tener * * * en el comando traceroute? y ¿Cómo se puede hacer frente a esa situación?

Cómo instalar y configurar PostgreSQL con phpPgAdmin en Ubuntu 20.04 LTS

Aquí está todo lo que puede hacer con Nmap:ejemplos de comandos

Todo sobre el Administrador de archivos (y lo que puede hacer con él)

¿Qué es un Homelab y por qué debería tener uno?

¿Se pueden desarrollar aplicaciones Linux con Xamarin?

Eliminar archivos con rm usando find y xargs