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

标签 database sqlite ms-access

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

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

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

最佳答案

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

关于database - 如何将 MS Access 数据库 (.mdb) 文件转换为 Sqlite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53687786/

相关文章:

android - 有没有更好的方法将项目预加载到数据库中?

ms-access - 尝试为 Access 中的查询设置 QueryDefs 参数时发生 VBA 错误

node.js - 在 Node js 中缓存的更好方法

php - 仅在控制台上拒绝 root@localhost 的 Laravel Artisan 访问

Android - 在 SQLite 数据库中保存位置

java - 在没有 ODBC 的情况下从 Java 操作 Access 数据库

使用域聚合函数 (DMin) 的 C# 参数化查询

node.js - 在 mongodb 中设置假数据进行测试

mysql - 多个关键字搜索的反向索引

python-3.x - Python3和SQLite3 JSON API调用