[TASK] Begin importing the schema - this only works with a created type - looking for alternative ways.
This commit is contained in:
parent
eca9caeb62
commit
ddfcdecb66
|
@ -7,19 +7,33 @@ def import_sqlite(project_id, sqlite_file):
|
||||||
print "This is import_sqlite speaking!"
|
print "This is import_sqlite speaking!"
|
||||||
print project_id
|
print project_id
|
||||||
print sqlite_file
|
print sqlite_file
|
||||||
print "Importing Data is still a TODO!"
|
print "Importing data..."
|
||||||
|
|
||||||
from sqlalchemy import *
|
from sqlalchemy import *
|
||||||
from sqlalchemy.schema import CreateSchema
|
from sqlalchemy.schema import CreateSchema
|
||||||
|
from sqlalchemy.ext.automap import automap_base
|
||||||
engine = create_engine('sqlite+pysqlite:///project_import_9.ctt4', echo=True)
|
from sqlalchemy.orm import Session
|
||||||
meta = MetaData(bind=engine)
|
|
||||||
meta.reflect()
|
|
||||||
#meta.tables['Reference']
|
|
||||||
#meta.tables['ReferenceAuthor'].select().execute().fetchall()
|
|
||||||
|
|
||||||
# Now we need to "convert" unsupported types :-/
|
# Initialize sqlite part
|
||||||
for table in meta.sorted_tables:
|
sqlite_engine = create_engine('sqlite+pysqlite:///project_import_9.ctt4', echo=True)
|
||||||
|
sqlite_session = Session(sqlite_engine)
|
||||||
|
sqlite_meta = MetaData(bind=sqlite_engine)
|
||||||
|
sqlite_meta.reflect()
|
||||||
|
|
||||||
|
# Initialize postresql part
|
||||||
|
psql_engine = create_engine("postgresql://citavi_mapper:foobar2000@localhost:5432/citavi_mapper")
|
||||||
|
psql_session = Session(psql_engine)
|
||||||
|
psql_engine.execute(CreateSchema('alchemytest')) # TODO: Catch Exception/Warning/Whatever here
|
||||||
|
psql_meta = MetaData(bind=psql_engine, schema='alchemytest')
|
||||||
|
|
||||||
|
"""
|
||||||
|
# Reflect the origin - maybe psql_meta.reflect() is enough?
|
||||||
|
sqlite_autobase = automap_base()
|
||||||
|
sqlite_autobase.prepare(sqlite_engine, reflect=True)
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Now that sh- super stuff is reflected and i can go on, using the Table instances.
|
||||||
|
for table in sqlite_meta.sorted_tables:
|
||||||
table_name = str(table)
|
table_name = str(table)
|
||||||
columns = table.columns.items()
|
columns = table.columns.items()
|
||||||
for column_tuple in columns:
|
for column_tuple in columns:
|
||||||
|
@ -30,12 +44,30 @@ def import_sqlite(project_id, sqlite_file):
|
||||||
print
|
print
|
||||||
print
|
print
|
||||||
|
|
||||||
|
# Shove it up into postgresql's ... you know.
|
||||||
|
psql_meta.create_all(psql_engine)
|
||||||
|
|
||||||
|
#sqlite_meta.reflect()
|
||||||
|
|
||||||
|
#meta.tables['Reference']
|
||||||
|
#meta.tables['ReferenceAuthor'].select().execute().fetchall()
|
||||||
|
|
||||||
|
# Now we need to "convert" unsupported types :-/
|
||||||
|
"""
|
||||||
|
for table in meta.sorted_tables:
|
||||||
|
table_name = str(table)
|
||||||
|
columns = table.columns.items()
|
||||||
|
for column_tuple in columns:
|
||||||
|
column_name = column_tuple[0]
|
||||||
|
actual_sqlalchemy_column = column_tuple[1]
|
||||||
|
column_type = str(vars(actual_sqlalchemy_column)['type'])
|
||||||
|
print table_name + "." + column_name + ': ' + column_type
|
||||||
|
print
|
||||||
|
print
|
||||||
|
"""
|
||||||
|
|
||||||
""" TODO: since DATETIME (sqlite3) does not map onto TIMESTAMP / DATE (postgresql), some mapping/migrating is required! """
|
""" TODO: since DATETIME (sqlite3) does not map onto TIMESTAMP / DATE (postgresql), some mapping/migrating is required! """
|
||||||
|
|
||||||
# Shove it up into postgresql's ... you know it.
|
|
||||||
psql_engine = create_engine("postgresql://citavi_mapper:foobar2000@localhost:5432/citavi_mapper")
|
|
||||||
psql_engine.execute(CreateSchema('alchemytest'))
|
|
||||||
meta.create_all(psql_engine)
|
|
||||||
|
|
||||||
|
|
||||||
pass
|
pass
|
Loading…
Reference in New Issue