【问题标题】:How can I convert an MS Access database (.mdb) file to an Sqlite?如何将 MS Access 数据库 (.mdb) 文件转换为 Sqlite?
【发布时间】:2019-05-10 07:08:36
【问题描述】:

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

我需要转换所有的表并转储里面的数据。

是否有任何 FOSS 命令行工具可以在 Linux 上执行此操作?

【问题讨论】:

    标签: database sqlite ms-access


    【解决方案1】:

    很难找到这样的东西,但我已经构建了一个方便的 Python 实用程序来使用 SQLAlchemypandas_access,它依赖于 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 2011-03-28
      • 2011-08-09
      • 1970-01-01
      • 2018-03-06
      相关资源
      最近更新 更多