Datenbank schon angelegt / importieren (.sql-Datei) / keine superuser-Rechte

    • kartoffelheinz
      kartoffelheinz
      Bronze
      Dabei seit: 15.01.2007 Beiträge: 245
      Hallo,

      mein Hoster stellt mir beliebig viele PG-Datenbanken zur Verfügung - diese würde ich gerne für Elephant nutzen. Nur wird die Datenbank schon vor Benutzung von Elephant im Webinterface vom Provider angelegt und ich kriege selbstverständlich keine Möglichkeit, selbst Datenbanken über PG anzulegen.

      Leider gibt es im Elephant-Verzeichnis keine entsprechende Datenbank-Definition, die ich einfach einspielen könnte (verstehe NICHT warum es sowas nicht gibt, sowas gehört zum Standardlieferumgang einer Software die auf eine Datenbank angewiesen ist), daher muss ich hier nach einem Link zu einer frischen, unbenutzten Elephant-Datenbank als SQL-Export fragen. Dazu muss es auch irgendwie möglich sein, die Zugangsdaten im Elephant anzulegen OHNE dass er versucht, die Datenbank zu erstellen!

      So bekomme ich im Elephant beim klick auf "Ok" nu die Fehlermeldung:
      code:
      ERROR: 08P01 no such database


      Eine schnelle Lösung wäre super!
  • 8 Antworten
    • Larres
      Larres
      Bronze
      Dabei seit: 07.09.2009 Beiträge: 2.402
      Hallo kartoffelheinz,

      es ist zwingend erforderlich, dass sich der Elephant seine eigene PostgreSQL-Datenbank selbst erstellt (Stichwort: Tabellen, Views, etc.)!

      Sollte der gestartete Elephant keinen Datenbankzugang konfiguriert haben, dann fragt er beim Start ganz automatisch nach einer neuen Datenbank und dort können die benötigen Credentials bestehend aus Datenbankname, Username und Passwort, sowie (in den erweiterten Einstellungen) auch ein beliebiger Server (Dein Hoster?!) und dessen Port (der Default-Wert hier ist übrigens "localhost:5432") eingeben werden.

      Eine neue Datenbank kann zudem auch aus dem laufenden Elephant heraus generiert werden. Dazu einfach unter Einstellungen/Datenbankmanagement die Option "Neue Datebank erstellen" auswählen und den Bildschirmanweisungen folgen.

      Weitere nützliche Infos zum Thema Elephant und Datenbank auf unterschiedlichen Rechnern gibts auch im folgenden Thread "Elephant multiseat (1 Datenbank PC, x Elephant PCs)", aus unserem FAQ.

      Hoffe das hilft?

      Gruß,
      L.
    • kartoffelheinz
      kartoffelheinz
      Bronze
      Dabei seit: 15.01.2007 Beiträge: 245
      Mh, das war leider nicht meine Frage, denn Views, Tabellen etc. kann auch direkt aus einem Export erstellt werden. Und Elephant kann das anscheinend ohne Super-User-Rechte nicht ODER versucht immer, die Datenbank zu erstellen und bricht dann ab, weil es die ja schon gibt (dann wäre allerdings die Fehlermeldung irreführend die ich bekomme, s.o.)

      Mein Problem ist aber genau, dass ich die Rechte zum Erstellen einer Datenbank NICHT habe. Es muss doch möglich sein, dem Elephant zu sagen:
      - Erstelle KEINE Datenbank
      - Lege trotzdem alle Tabellen und Views korrekt an

      Die richtigen Zugangsdaten sind nicht das Problem.

      Bzw anders gefragt: Warum bekomme ich sonst die von mir gezeigte Fehlermeldung? Auf welche Datenbank versucht Elephant da zuzugreifen und warum?
    • Larres
      Larres
      Bronze
      Dabei seit: 07.09.2009 Beiträge: 2.402
      Hallo kartoffelheinz,

      leider nein, der Elephant ist so konzipiert, dass er seine eigene Datenbank selbst anlegt.

      Daher kann ich Dir leider nur empfehlen die Elephant-Datenbank auf einem Rechner mit Administratorrechten neu zu erstellen.
      Weitere Tipps dazu findest Du auch im FAQ.

      Gruß,
      L.
    • kartoffelheinz
      kartoffelheinz
      Bronze
      Dabei seit: 15.01.2007 Beiträge: 245
      Wäre es nicht möglich, dass Du z.B. einfach mal eine leere neue Datenbank erstellst und mir ein Backup davon hochlädst? Wäre ich Dir sehr dankbar!

      Wobei dann natürlich immer noch das Problem ist, dass Elephant anscheinend keine Zugangsdaten speichert ohne die Datenbank zu erstellen... das echt blöd - kann man die Zugangsdaten evtl. in eine .config o.ä. einpflegen?
    • kartoffelheinz
      kartoffelheinz
      Bronze
      Dabei seit: 15.01.2007 Beiträge: 245
      Ist es auch zuviel verlangt, wenigstens den Ort genannt zu bekommen, wo Elephant seine Konfiguration (besonders die Datenbankverbinungseinstellungen) speichert?

      Damit wäre mir ja schon geholfen, den Rest krieg ich selbst hingebogen...
    • PS.Markus
      PS.Markus
      Bronze
      Dabei seit: 12.05.2009 Beiträge: 455
      Moin,

      ich kann natuerlich den Wunsch verstehen, das auf einen externen Server auszulagern. Ich fuerchte allerdings, dass wir hier nicht weiterkommen werden.

      Der Elephant wurde von den urspruenglichen Entwicklern darauf ausgelegt, dass man Superuser-Zugang zur PostgreSQL Instanz hat. Bei der Implementierung wurde auch eine gewisse Kreativitaet an den Tag gelegt.

      Kurzum, Du benoetigst Rechte einen User, Tabellen und Trigger anzulegen. Ich denke beim Create User Recht wirst Du scheitern. Das ist auch nix, das wir kurzfristig aendern koennen, da Eingriffe im Legacy DB-Layer sehr riskant und unberechenbar sind.

      Um den alten DB-Layer entsorgen zu koennen, muss zuerst die Statistik-Engine auf neue Beine gestellt werden. Das steht zwar auf dem Plan, ist aber auch nichts was von heute auf morgen passiert.

      Bzgl SQL-Skript: Deine Annahme ist so nicht richtig. Bei OR-Mappern ist es eigentlich Standard, dass das Schema aus den Klassen generiert wird. Idealerweise kommt man dort mit SQL gar nicht mehr in Beruehrung, was auch sinnvoll ist da dadurch die Besonderheiten der unterschiedlichen DB-Enignes im OR-Mapper gekapselt sind.

      Wie gesagt, wir sind mit dem DB-Layer alles andere als gluecklich, aber um ihn auswechseln zu koennen, muessen erst die Abhaengigkeiten in Ordnung gebracht werden. Solange wird sich an obigen Voraussetzungen nichts aendern koennen.

      Cheers,
      M.
    • kartoffelheinz
      kartoffelheinz
      Bronze
      Dabei seit: 15.01.2007 Beiträge: 245
      Hallo Markus,

      vielen Dank für diese ausführliche Antwort. Ist zwar schade, aber damit muss ich dann wohl erstmal leben. Und wenn es in Zukunft Chancen gibt, dass ich die DB doch ohne Super-User-Rechte auslagern kann ist das natürlich ein Lichtblick. Zeitlich gibts da wohl noch nichts zu sagen, oder?


      Viele Grüße
      Florian
    • PS.Markus
      PS.Markus
      Bronze
      Dabei seit: 12.05.2009 Beiträge: 455
      Moin,

      ich sehe im Moment eigentlich keinen Grund, wieso der neue DB-Layer diese Funktionalitaet nicht unterstuetzen sollte. Man gewinnt dadurch auf jeden Fall an Flexibilitaet.

      Zeitlich ist das derzeit leider kaum abzuschaetzen. Wir wollen den Legacy Layer sobald wie moeglich entsorgen, die Frage ist nur wann wir das koennen. Durch die vielen, engen Verbindungen ist das eine zentrale Komponente, die sich schlecht herausloesen laesst.

      Wir werden uns das beim anstehenden Upgrade auf die aktuelle PostgreSQL Version noch genauer ansehen, aber derzeit sieht es so aus, als ob auf jeden Fall Statistik-Engine und HUD vorher ueberarbeitet werden muessen und selbst dann gibt es noch eine Reihe offener Fragen.

      Cheers,
      M.