Python Flask Projekt bei Heroku mit SQLlite DB, PostgresSQL nötig

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Zoja
User
Beiträge: 145
Registriert: Freitag 28. Februar 2014, 14:04

Hallo zusammen, ich habe jetzt ein großes Projekt (mein erstes) mit Python und Flask realisiert, nun will ich es hochladen.

Ich benutze aber eine SQLite Database. Nun habe ich recherschiert und muss feststellen, dass SQLite wohl zum entwickeln gut ist, aber sonst nicht funktiniert? Zumindest bei Heroku:
SQLite is ideal for users getting started since it can be run in memory and backed by small files on disk that are easily created and moved around. While easy to use, SQLite is not intended as a production grade database. Instead Heroku provides production grade PostgreSQL databases as a service.
If you were to use SQLite on Heroku, you would lose your entire database at least once every 24 hours.
Nun bin ich etwas verzweifelt, was soll ich tun? Ist es möglich meine SQLite DB zu PostgresSQL ohne Probleme umzuwandeln, so dass die Flask APP immernoch funktiniert oder heißt es vieles neu machen? Oder gibt es andere Hoster, bei denen SQlite gehen würde? Wenn ja wären Empfehlungen super, ich habe seit der Uni immer bei Heroku hochgeladen.

In der DB sind zurzeit keine Daten, aber ich will das Projekt diese/nächste Woche live schalten. Es handelt sich dabei um eine Seite, auf der man Zimmer suchen kann. Registrierte User können Zimmer einstellen. Also wenig connections in der DB, aber mit der Zeit wird die DB schon sehr groß.

Bei Heroku kann ich noch nicht mals meine DB runterladen und lokal speichern.

Danke!
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

SQLite erlaubt nicht mehrere writes gleichzeitig und es unterstützt keine Migrationen. Das macht es für Webanwendungen eher weniger optimal. Zum Entwickeln und Testen solltest du eine Umgebung nutzen die der Produktivumgebung möglichst nah kommt, du solltest SQLite also auch nicht zur lokalen Entwicklung nutzen, wenn der Code tatsächlich mit Postgres laufen soll.

Da du in der Datenbank ohnehin keine Daten hast (was auch äußerst seltsam wäre), stellt dass alles auch kein Problem dar. Du erstellst die Tabellen usw. einfach alle in Postgres neu. Sofern du nicht von Hand SQL schreibst (keine gute Idee) sondern SQLAlchemy nutzt, wird sich für dich auch ansonsten nichts verändern.

Die Heroku Dokumentation beschreibst übrigens wie man die Datenbank herunterlädt.
BlackJack

@Zoja: Benutzt Du denn irgendwas spezielles bei SQLite was mit PostgreSQL nicht geht? Stell das bei Dir lokal doch einfach mal auf PostgreSQL um und lass die Tests laufen.
Zoja
User
Beiträge: 145
Registriert: Freitag 28. Februar 2014, 14:04

DasIch hat geschrieben:SQLite erlaubt nicht mehrere writes gleichzeitig und es unterstützt keine Migrationen. Das macht es für Webanwendungen eher weniger optimal. Zum Entwickeln und Testen solltest du eine Umgebung nutzen die der Produktivumgebung möglichst nah kommt, du solltest SQLite also auch nicht zur lokalen Entwicklung nutzen, wenn der Code tatsächlich mit Postgres laufen soll.

Da du in der Datenbank ohnehin keine Daten hast (was auch äußerst seltsam wäre), stellt dass alles auch kein Problem dar. Du erstellst die Tabellen usw. einfach alle in Postgres neu. Sofern du nicht von Hand SQL schreibst (keine gute Idee) sondern SQLAlchemy nutzt, wird sich für dich auch ansonsten nichts verändern.

Die Heroku Dokumentation beschreibst übrigens wie man die Datenbank herunterlädt.
Vielen Dank, ja ich nutze SQLAlchemy, aber keine Flask-SQLAlchemy. Ich stelle einfach um auf PostgresSQL
Zoja
User
Beiträge: 145
Registriert: Freitag 28. Februar 2014, 14:04

BlackJack hat geschrieben:@Zoja: Benutzt Du denn irgendwas spezielles bei SQLite was mit PostgreSQL nicht geht? Stell das bei Dir lokal doch einfach mal auf PostgreSQL um und lass die Tests laufen.
Nein ist eine simple Datenbank, danke für den Tipp ich stelle einfach um und teste
Antworten