2016-08-09 179 views
1

Wir haben eine iOS-App, die SQLite-Dateien verwenden, Daten lokal zu speichern. Wir haben eine Rails-App, die bei heroku gehostet wird, auf der wir die sqlite-Dateien veröffentlichen, die Daten verarbeiten und Datensätze in unsere PG-Datenbank einfügen möchten.lesen SQLite-Datei mit sqlite3 gem

Heroku nicht erlaubt SQLite überhaupt, und wir können die sqlite3 Juwel nicht installieren. Wir wollen nur die sqlite-Dateien lesen und müssen den sqlite nicht als db bei heroku verwenden.

Gibt es eine Möglichkeit SQLite-Dateien auf Heroku zu lesen?

+0

Möchten Sie wirklich eine SQLite-Datei ohne sqlite lesen? –

+0

Schauen dieses aß: https://devcenter.heroku.com/articles/sqlite3 –

+0

Haben Sie die Möglichkeit, eine Datei von Dumping Daten angesehen und dann diese Datei zu lesen? http://alvinalexander.com/android/sqlite-dump-backup-database-file-how –

Antwort

0

Ich sehe drei Möglichkeiten:

1) Sie können Ihre sqlite3 Datenbank in eine Datei Dump und dann den Inhalt in einer PostgreSQL-Datenbank auf Heroku importieren. Sie können es nach den Anweisungen here ablegen. Zum Importieren können Sie eine Rake-Aufgabe schreiben oder ein Programm ausführen, um diese Aufgabe über die Befehlszeile auszuführen. Sie können sogar db/samen.rb verwenden, um diese Aufgabe auszuführen.

2) Sie Dump können Ihre sqlite3 Datenbank in eine Datei und versuchen, PostgreSQL Import von Daten direkt aus dieser Datei. Ich habe das nie ausprobiert und Sie werden wahrscheinlich einige Probleme finden. Die Ausgabeformate sind manchmal etwas anders, wenn Sie von einer Datenbank in eine andere wechseln. Datenbanken sind selten "100% -pure-SQL-konform".

WICHTIG: In beiden Fällen Sie in Ihrer Entwicklungsumgebung Dump werden und dann die Ergebnisse zu Heroku schieben.

3) Sie können ein Programm schreiben, zu „verstehen“ Format der SQLite-Datenbank. Dies würde bedeuten, sqlite neu zu schreiben, und Sie müssen überprüfen, ob Sie sich wirklich in so viele Schwierigkeiten bringen wollen. Selbst wenn Sie bedenken, dass diese Aufgabe die Zeit und Mühe wert ist, die Sie ihr widmen, überlegen Sie auch, was Heroku sagt here über das Speichern von Dateien in ihrem Dateisystem. Dies ist die wichtige Botschaft:

SQLite runs in memory, and backs up its data store in files on disk. 
While this strategy works well for development, Heroku’s Cedar stack has 
an ephemeral filesystem. You can write to it, and you can read from it, 
but the contents will be cleared periodically. If you were to use SQLite 
on Heroku, you would lose your entire database at least once every 
24 hours. 

Ich schlage vor, Sie auch here einen Blick auf diesen Artikel in Anspruch zu nehmen. Es kann Ihnen helfen, beim nächsten Mal etwas Zeit und Mühe zu sparen.

Ich hoffe, das hilft.

+1

Am Ende hosste ich eine Rails-App auf einem anderen vps und bearbeitete die sqlite-Dateien dort, dann schickte ich JSON zu meiner Haupt-heroku-App, die wir dann der postgresql-db hinzugefügt haben. Vielen Dank. –

+0

Großartig, dass Sie es gelöst haben. Und tut mir leid, dass ich nicht hilfreich bin. –