1234567891011121314151617181920212223242526272829303132 |
- import sqlalchemy.dialects.mssql.base
- from sqlalchemy import create_engine, MetaData, Boolean, DATETIME
- from database import conn_string
- source_dsn = {'user': 'sa', 'pass': 'Mffu3011#', 'server': 'GC-SERVER1\\GLOBALCUBE', 'database': 'OPTIMA', 'driver': 'mssql'}
- source_schema = 'import'
- target_dsn = {'user': 'root', 'pass': '', 'server': 'localhost', 'database': 'OPTIMA', 'driver': 'mysql'}
- target_schema = ''
- source_db = create_engine(conn_string(source_dsn))
- source_meta = MetaData()
- source_meta.reflect(bind=source_db, schema=source_schema)
- # print('\n'.join(source_meta.tables.keys()))
- target_db = create_engine(conn_string(target_dsn))
- source_meta.bind = target_db
- for table in source_meta.sorted_tables:
- table.schema = None
- for col in table.c:
- if getattr(col.type, 'collation', None) is not None:
- col.type.collation = None
- if type(col.type) is sqlalchemy.dialects.mssql.base.BIT:
- col.type = Boolean()
- if type(col.type) is DATETIME:
- # print(table.name + '.' + col.name)
- col.server_default = None
- if type(col.type) is sqlalchemy.dialects.mssql.base.SMALLDATETIME:
- col.type = DATETIME()
- source_meta.create_all()
|