SQLite

Um den Python-SQLite3-Treiber dazu zu bringen, DATE- und TIMESTAMP-Felder (mit DATETIME-Feldern funktioniert es nicht) automatisch als datetime.date bzw. datetime.datetime zu behandeln, muss man nur den connect()-Aufruf etwas erweitern:

connection = sqlite3.connect(PATH_TO_DB_FILE, detect_types = sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES)

import sqlalchemy.schema

PATH = "/PATH/TO/SQLITE_FILE"

sqlite_engine = sqlalchemy.create_engine("sqlite:///%s" % PATH)
mysql_engine = sqlalchemy.create_engine("mysql://")

meta = sqlalchemy.MetaData()
meta.reflect(bind=sqlite_engine)

for table in meta.sorted_tables:
    if str(table) != "sqlite_sequence":
        print(sqlalchemy.schema.CreateTable(table).compile(mysql_engine))

  • Zuletzt geändert: 2019-03-31 13:25