GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Können Sie das Exportieren und anschließende Importieren von PostgreSQL mit phpPgAdmin erklären? (Und was ist mit Berechtigungen?)

Exportieren

  1. Anmelden
  2. Navigieren Sie zum Tab "Exportieren"
  3. Klicken Sie auf das Optionsfeld "Struktur und Daten"
  4. Klicken Sie auf das Optionsfeld "Herunterladen"
  5. Klicken Sie auf die Schaltfläche "Exportieren" und speichern Sie es auf Ihrem lokalen Computer.

Importieren

  1. Navigieren Sie zu http://www.pgadmin.org/, um pgAdmin III herunterzuladen (eines der besseren kostenlosen Postgres-GUI-Tools)
  2. Installieren
  3. Verwenden Sie es für alle Ihre Postgres-Anforderungen.

In Bezug auf Berechtigungen öffnen Sie einfach den Datenbank-Dump (es ist Klartext) und suchen Sie nach den Zeilen, in denen versucht wird, den aktuellen Benutzer zu ändern oder den Eigentümer einer Tabelle festzulegen. Führen Sie dann einfach eine Suche/Ersetzung durch und ersetzen Sie den ursprünglichen Eigentümer durch Ihren neuen Benutzernamen. Sie müssen sich überhaupt keine Gedanken über das Erteilen/Ändern von Berechtigungen machen :D

Früher mussten wir dies die ganze Zeit tun, wenn wir von der Entwicklung zur Produktion übergingen, der ursprüngliche Datenbank-/Tabellenbesitzer war der Entwickler und wir mussten das auf das Kundenkonto ändern, sobald wir startbereit waren.

Wir haben immer von der Konsole aus mit pg_dump gearbeitet und andere verwandte Befehlszeilentools, aber ich gehe davon aus, dass diese den Optionen zugeordnet sind, die Sie in der Weboberfläche haben.


Der phpPgAdmin-Export verwendet pg_dump. Sie können das nachlesen, wenn Sie wissen möchten, was es tut.

Sie können es auch als SQL anstelle von COPY exportieren. COPY ist für Postgres und Sie benötigen SQL, wenn Sie versuchen möchten, eine andere Datenbank zu verwenden. Es ist auch einfacher zu verstehen, wenn Sie an unterschiedliche Datenbanken gewöhnt sind.

Was Sie mit „Structure and Data“ erhalten, ist eine SQL-Datei, die mit der Datenbanktabellenstruktur beginnt, dann alle Daten, dann Constraints und Keys.

Wie Sascha angemerkt hat, haben Sie möglicherweise Probleme mit den Berechtigungen. Ich fand es immer einfacher, die Berechtigungszeilen einfach zu löschen oder sie auszukommentieren, da dies nur für eine Entwicklungsdatenbank gilt. Entfernen/kommentieren/ändern Sie die Zeilen mit „EIGENTÜMER“. Wie

ALTER TABLE schema.table OWNER TO pguser;

Jede CREATE TABLE-Anweisung hat eines davon, um den Tabelleneigentümer festzulegen.

IMPORTIEREN

Wenn Sie SQL-Fehler haben (was ich ziemlich oft gesehen habe, abhängig von den Daten. Zeichenfolgen mit ungeraden Zeichen können ein Problem sein), ist es möglicherweise einfacher, die Datei aufzuteilen und zuerst die Struktur herauszukopieren und diese als Standard auszuführen SQL-Abfrage. Beginnen Sie dann mit den Daten und importieren Sie sie tabellenweise. Es macht es viel einfacher, den Fehler zu finden, wenn Sie es in Teile schneiden. Besonders wenn es um die sehr wenig hilfreichen Fehlermeldungen geht.

Ja, es ist eine Menge Kopier- und Einfügearbeit, aber es erledigt die Arbeit und wird wahrscheinlich weniger Zeit in Anspruch nehmen, als es in MySQL zu portieren und dann das PHP ändern zu müssen, um eine Verbindung herzustellen und Daten von MySQL anstelle von Postgres zu erhalten.

PhpPgAdmin und pgadminIII können beide SQL-Anweisungen ausführen.

pgAdminIII -> Datenbank auswählen -> Schaltfläche „Beliebige SQL-Abfragen ausführen“ auswählen. PhpPgAdmin -> Datenbank auswählen -> den „SQL“-Link auswählen.

Ehrlich gesagt ist dies die am wenigsten irritierende Art, Datenbanken zu verschieben, die ich gefunden habe. Es dauert länger, aber nur, wenn keine Fehler auftreten.


Linux
  1. Was ein Shell-Dotfile für Sie tun kann

  2. Flatpak unter Linux:Was es ist und wie man Apps damit installiert

  3. Was ist ein TAM und warum möchten Sie vielleicht einer werden?

  4. Verwenden Sie den Bash-Verlauf, um einen vorherigen Befehl abzurufen, kopieren Sie ihn und führen Sie ihn dann aus, jedoch mit dem kommentierten Befehl

  5. Was kann ein Angreifer mit Bluetooth machen und wie sollte es abgewehrt werden?

3 nützliche Dinge, die Sie mit dem IP-Tool in Linux tun können

So installieren und konfigurieren Sie PostgreSQL mit phpPgAdmin unter Ubuntu 20.04 LTS

Können Sie Anker ^ $ mit Ls verwenden?

Alles über den Dateimanager (und was Sie damit machen können)

Was ist ein Homelab und warum sollten Sie eines haben?

Was bedeutet * * * im Befehl traceroute zu haben? und Wie können Sie mit dieser Situation umgehen?