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



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

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

有没有FOSS命令行工具可以在Linux上做到这一点?

很难找到这样的东西,但我已经构建了一个方便的Python实用程序,使用SQLAlchemy和依赖于mdbtools的pandas_access来实现这一点。

您需要的一切都可以通过获得

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)

最新更新