2009-04-03 7 views
4

Ja, das ist so eine dumme Situation, wie es sich anhört. Aufgrund einiger äußerst nerviger Hosting-Einschränkungen und nicht reagierender technischer Unterstützung muss ich eine CSV-Datei als Datenbank verwenden.Verwenden von CSV als eine veränderbare Datenbank?

Während ich MySQL mit PHP verwenden kann, kann ich es nicht mit dem Python-Backend meines Programms wegen Installationsproblemen mit dem Host verwenden. Ich kann SQLite nicht mit PHP verwenden, weil es mehr Probleme mit der Installation gibt, aber ich kann es verwenden, da es sich um ein eingebautes Python handelt.

Wie auch immer, jetzt die Frage: ist es möglich, Werte SQL-Stil in einer CSV-Datenbank zu aktualisieren? Oder sollte ich den Helpdesk anrufen?

Antwort

15

Gehen Sie nicht, laufen Sie, um sofort einen neuen Host zu erhalten. Wenn Ihr Host Ihnen nicht einmal die grundlegendsten kostenlosen Datenbanken bietet, ist es Zeit für eine Veränderung. Es gibt viele Fische im Meer.

Zumindest würde ich eher einen XML-Datenspeicher als einen CSV empfehlen. My blog verwendet einen XML-Datenprovider und ich hatte überhaupt keine Probleme mit der Leistung.

+1

+1 resovle dies der richtige Weg. – ojblass

+0

Glaub mir, ich bin definitiv dabei. Der Host ist für die meisten alles in Ordnung, außer dem kleinen Problem, dass die Hälfte der bereitgestellten Skriptsprachen die DBs nicht unterstützt, die die andere Hälfte tut ... –

0

Ich würde weiterhin beim Helpdesk anrufen. Sie nicht CSV für Daten verwenden möchten, wenn es überhaupt relational ist. Es wird ein Albtraum sein.

1

Rufen Sie den Helpdesk an.

Während Sie eine CSV als Datenbank verwenden können, ist es in der Regel eine schlechte Idee. Sie müssten Ihr eigenes Sperren, Suchen, Aktualisieren implementieren und sehr vorsichtig sein, wie Sie es schreiben, um sicherzustellen, dass es im Falle eines Stromausfalls oder eines anderen abnormalen Herunterfahrens nicht gelöscht wird. Es wird keine Transaktionen, keine Abfragesprache geben, außer Sie schreiben Ihre eigenen usw.

1

Ich könnte mir nicht vorstellen, dass das jemals eine gute Idee ist. Die aktuelle Unordnung, die ich geerbt habe, schreibt wichtige Abrechnungsinformationen in CSV und aktualisiert sie, nachdem die Projekte abgeschlossen sind. Es läuft schrecklich und Tausende von Dollars werden einen Monat verpasst. Für die aktuellen Einschränkungen, die Sie haben, würde ich in Betracht ziehen, ein besseres Hosting zu finden.

3

Werfen Sie einen Blick auf diese: http://www.netpromi.com/kirbybase_python.html

+0

Wie alle empfohlen, suche ich so schnell wie möglich einen neuen Host. Dies ist eine gute Notlösung für den Fall, dass die Dinge nicht funktionieren. Vielen Dank. –

0

Ich bin damit einverstanden. Sagen Sie ihnen, dass 5 zufällige Fremde zustimmen, dass Sie in eine Ecke gezwungen werden, CSV zu verwenden, ist absurd und inakzeptabel.

1

Sie können wahrscheinlich sqlite3 für mehr echte Datenbank verwendet werden. Es ist schwer, sich ein Hosting vorzustellen, das es nicht erlaubt, es als Python-Modul zu installieren.

denken Sie CSV nicht einmal zu verwenden, werden Ihre Daten beschädigt und verlor schneller als Sie „s # & t“ sagen

0

Wenn ich Sie richtig verstehe: Sie die gleiche Datenbank sowohl von Python zugreifen müssen und PHP, und Sie sind geschraubt, weil Sie nur MySQL von PHP und nur SQLite von Python verwenden können?

Können Sie dies weiter erklären? Vielleicht könnten Sie xml-rpc oder einfache HTTP-Anfragen mit xml/json/... verwenden, um das php-Programm mit dem Python-Programm zu kommunizieren (oder umgekehrt?), So dass nur einer von ihnen direkt auf die db zugreift.

Wenn dies nicht der Fall ist, bin ich mir nicht sicher, was das Problem ist.

1

"Wie auch immer, jetzt die Frage: ist es möglich, Werte SQL-Stil in einer CSV-Datenbank zu aktualisieren?"

Technisch es möglich ist. Allerdings kann es schwierig sein.

Wenn beide PHP und Python werden, die Datei zu schreiben, müssen Sie OS-Level-Locking verwenden, um sicherzustellen, dass sie nicht überschreiben sie. jeder Teil des Systems wird die Datei zu sperren hat, es von Grunde auf neu zu schreiben mit allen Updates und entsperren sie die Datei.

das bedeutet, dass PHP und Python muss die gesamte Datei in den Speicher laden, bevor Umschreiben es

Es gibt ein paar Möglichkeiten zu Behandeln Sie die Betriebssystemsperre.

  1. Verwenden Sie die gleiche Datei und verwenden Sie tatsächlich ein OS-Sperrmodul. Beide Prozesse haben die Datei zu jeder Zeit geöffnet.

  2. In eine temporäre Datei schreiben und umbenennen. Dies bedeutet, dass jedes Programm die Datei für jede Transaktion öffnen und lesen muss. Sehr sicher und zuverlässig. Ein bisschen langsam.

Or. En

Sie können es rearchitect, so dass nur Python die Datei schreibt. Das Front-End liest die Datei, wenn sie sich ändert, und löscht kleine Transaktionsdateien, um eine Arbeitswarteschlange für Python zu erstellen. In diesem Fall haben Sie nicht mehrere Schreiber - Sie haben einen Leser und einen Schreiber - und das Leben ist viel, viel einfacher.

0

Es ist technisch möglich. Zum Beispiel hat Perl DBD::CSV, das einen Treiber bereitstellt, der SQL-Abfragen für die CSV-Datei ausführt.

Wenn man sagt, warum nicht laufen eine SQLite-Datenbank auf Ihrem Server?

0

Was ist mit postgresql? Ich habe festgestellt, dass es sehr angenehm ist, damit zu arbeiten, und Python unterstützt es gut.

Aber ich würde wirklich nach einem anderen Anbieter suchen, es sei denn, es ist wirklich keine Option.

0

Ich unterscheide mich mit den edlen Kollegen oft mit DBD :: CSV von Perl. Es gibt gute Gründe dafür. In erster Linie wird die Datenaktualisierung mithilfe einer Tabellenkalkulation vereinfacht. Als Bonus kann die Anwendung, da ich SQL-Abfragen verwende, einfach zu einer echten Datenbank-Engine aufgerüstet werden. Bedenken Sie, dass dies eine extrem kleine Datenbank in einer einzelnen Benutzeranwendung war.

So Umformulierung die Frage: Gibt es ein Python-Modul entspricht dem Perl-DBD: CSV