首页 文章

如何将MS Access数据库(.mdb)文件转换为Sqlite?

提问于
浏览
-1

我有一个MS Access .mdb 文件,我想将其转换为SQLite数据库 .

我需要转换所有表并将数据转储到其中 .

有没有可以在Linux上执行此操作的FOSS命令行工具?

1 回答

  • -1

    它's remarkably hard to find such a thing, but I'已经使用SQLAlchemypandas_access构建了一个方便的Python实用程序,它依赖于mdbtools .

    您需要的一切都可以通过以下方式获得:

    pip3 install sqlalchemy pandas_access
    sudo apt install mdbtools
    

    代码如下:

    #!/usr/bin/env python3
    
    import pandas_access as mdb
    from sqlalchemy import create_engine
    import sys
    import os
    
    if len(sys.argv)!=3:
      print("{0} <MDB File> <Sqlite3 File>".format(sys.argv[0]))
      sys.exit(-1)
    
    if os.path.isfile(sys.argv[2]):
      print("Refusing to modify existing database!")
      sys.exit(-1)
    
    engine = create_engine('sqlite:///{0}'.format(sys.argv[2]), echo=False)
    tlist  = [tbl for tbl in mdb.list_tables(sys.argv[1])]
    tables = {tbl:mdb.read_table(sys.argv[1], tbl) for tbl in tlist}
    
    for k in tables:
      tables[k].to_sql(k, con=engine)
    

相关问题