Seite 1 von 2
Re: Immobilienportal
Verfasst: Dienstag 7. Juli 2015, 22:01
von BlackJack
@DasIch: Unveränderbar ja aber auch nur in dem Sinn dass es nicht so einfach geht wie bei anderen DBMS. Man muss halt die Tabelle umbenennen, eine neue Veränderte anlegen, und die Daten dann kopieren. Macht etwas mehr Arbeit.
Re: Immobilienportal
Verfasst: Dienstag 7. Juli 2015, 22:13
von DasIch
Sicherlich kann man dies tun aber das kopieren kostet Zeit, Zeit in der die Datenbank nicht erreichbar ist. Das spielt bei kleinen Datenbanken vielleicht keine große Rolle aber Datenbanken haben die Tendenz größer zu werden und früher oder später stört es dann schon.
Re: Immobilienportal
Verfasst: Dienstag 7. Juli 2015, 22:18
von BlackJack
@DasIch: Naja für richtig grosse Datenbestände die wirklich ständig verfügbar sein müssen würde ich SQLite natürlich nicht verwenden. Und bei Datenbeständen die mit der Zeit grösser werden: Man muss dann ja nicht bei SQLite bleiben.
Re: Immobilienportal
Verfasst: Mittwoch 8. Juli 2015, 07:07
von Sirius3
@DasIch: das schöne, wenn man ein ORM wie SQLAlchemy nimmt, ist ja, dass man einfach eine Datenbank austauschen kann. Man nimmt SQLite zur Entwicklung, und wenn man dann wirklich ein Produktivsystem mit x-tausend Anfragen pro Sekunde aufbaut, wechselt man zu einer dafür besser geeigneten Datenbank.
Re: Immobilienportal
Verfasst: Mittwoch 8. Juli 2015, 10:48
von meego
Wird der Standardhoster um die Ecke Postgres eigentlich überhaupt unterstützen?
Re: Immobilienportal
Verfasst: Mittwoch 8. Juli 2015, 13:03
von Sirius3
@meego: Was meinst Du mit Standardhoster? PostgreSQL ist nicht so resourcenhungrig, als dass es nicht auch auf einem kleinen Server laufen würde und wenn Dein Projekt eine gewisse Größe erreichen wird, wird Dir Dein Hoster um die Ecke sowieso nicht mehr reichen.
Re: Immobilienportal
Verfasst: Mittwoch 8. Juli 2015, 14:02
von meego
Naja, bei meinem (Metanet) habe ich im Admin gesehen, dass die eigentlich nur MySQL haben. Ich habe gestern mal Postgres gezogen und auf meinem Ubuntu installiert ("sudo apt-get install postgresql-9.4"). Allerdings konnte ich den Server nicht starten.
Die Anleitung ist leider ziemlich "spartanisch":
http://www.postgresql.org/docs/9.4/inte ... start.html
pgAdmin III habe ich auch einmal installiert.
Re: Immobilienportal
Verfasst: Donnerstag 9. Juli 2015, 06:27
von Käptn Haddock
Für den Anfang sollte es sqlite für dich tun. Da gibt es auch spatialite, womit du geographische Abfragen erstellen kannst.
Wenn du dann feststellst, das sqlite nichht mehr genügt, kannst du dich z.B. mit PostgreSQL befassen. Da ist der Umstieg recht einfach, M[y|aria]SQL hat das grössere Unterschiede, die man sich erarbeiten muß. Aber das wirst du bis dann selbst abschätzen können
Gruß Uwe
Re: Immobilienportal
Verfasst: Donnerstag 9. Juli 2015, 07:33
von meego
Danke einem guten Tutorial weiss ich jetzt schon, wie ich dort Tabellen erstelle. Frage? Was wird mit dem gelobten bottle-sqlalchemy einfacher? Wie sehen dort die Befehle aus?
Code: Alles auswählen
import sqlite3
db = sqlite3.connect('picnic.db')
db.execute("CREATE TABLE picnic (id INTEGER PRIMARY KEY, item CHAR(100) NOT NULL, quant INTEGER NOT NULL)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('bread', 4)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('cheese', 2)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('grapes', 30)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('cake', 1)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('soda', 4)")
db.commit()
Re: Immobilienportal
Verfasst: Donnerstag 9. Juli 2015, 08:12
von Sirius3
@meego: dank einem schlechten Tutorial weißt Du jetzt, wie man es nicht machen sollte!
Code: Alles auswählen
for item, quant in [('bread', 4), ('cheese', 2)]:
db.execute("INSERT INTO picnic (item,quant) VALUES (?, ?)", (item, quant))
Re: Immobilienportal
Verfasst: Donnerstag 9. Juli 2015, 08:17
von BlackJack
Speziell an der Stelle kann man auch `executemany()` erwähnen.

Re: Immobilienportal
Verfasst: Donnerstag 9. Juli 2015, 09:24
von meego
Codeoptimierung ist immer möglich. Aber wo finde ich die Definition zu executemany()?
Code: Alles auswählen
dir(sqlite3)
['Binary', 'Cache', 'Connection', 'Cursor', 'DataError', 'DatabaseError', 'Date', 'DateFromTicks', 'Error', 'IntegrityError', 'InterfaceError', 'InternalError', 'NotSupportedError', 'OperationalError', 'OptimizedUnicode', 'PARSE_COLNAMES', 'PARSE_DECLTYPES', 'PrepareProtocol', 'ProgrammingError', 'Row', 'SQLITE_ALTER_TABLE', 'SQLITE_ANALYZE', 'SQLITE_ATTACH', 'SQLITE_CREATE_INDEX', 'SQLITE_CREATE_TABLE', 'SQLITE_CREATE_TEMP_INDEX', 'SQLITE_CREATE_TEMP_TABLE', 'SQLITE_CREATE_TEMP_TRIGGER', 'SQLITE_CREATE_TEMP_VIEW', 'SQLITE_CREATE_TRIGGER', 'SQLITE_CREATE_VIEW', 'SQLITE_DELETE', 'SQLITE_DENY', 'SQLITE_DETACH', 'SQLITE_DROP_INDEX', 'SQLITE_DROP_TABLE', 'SQLITE_DROP_TEMP_INDEX', 'SQLITE_DROP_TEMP_TABLE', 'SQLITE_DROP_TEMP_TRIGGER', 'SQLITE_DROP_TEMP_VIEW', 'SQLITE_DROP_TRIGGER', 'SQLITE_DROP_VIEW', 'SQLITE_IGNORE', 'SQLITE_INSERT', 'SQLITE_OK', 'SQLITE_PRAGMA', 'SQLITE_READ', 'SQLITE_REINDEX', 'SQLITE_SELECT', 'SQLITE_TRANSACTION', 'SQLITE_UPDATE', 'Statement', 'Time', 'TimeFromTicks', 'Timestamp', 'TimestampFromTicks', 'Warning', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'adapt', 'adapters', 'apilevel', 'collections', 'complete_statement', 'connect', 'converters', 'datetime', 'dbapi2', 'enable_callback_tracebacks', 'enable_shared_cache', 'paramstyle', 'register_adapter', 'register_converter', 'sqlite_version', 'sqlite_version_info', 'threadsafety', 'time', 'version', 'version_info', 'x']
Re: Immobilienportal
Verfasst: Donnerstag 9. Juli 2015, 10:01
von lackschuh
meego hat geschrieben:Codeoptimierung ist immer möglich. Aber wo finde ich die Definition zu executemany()?
In der
Doku?
Re: Immobilienportal
Verfasst: Donnerstag 9. Juli 2015, 11:11
von meego
Danke. Also vermutlich im Cursorobjekt.