将ODBC数据库转换为SQLite的最简单方法

时间:2019-06-08 07:59:44

标签: sqlite migration odbc filemaker

我需要将一些重要的数据从旧的FileMaker Pro中恢复到可以在任何地方轻松使用的东西。 SQLite看起来是个不错的选择。但是问题是如何执行此迁移?

FileMaker Pro能够将其数据公开为ODBC。从ODBC读取所有数据并创建等效的SQLite的最佳选择是什么?

是否有用于该语言的特定工具或者库或脚本可以快速完成此任务?

1 个答案:

答案 0 :(得分:1)

似乎最简单,最快的方法是将pythonpandas库一起使用。这个想法的灵感来自this question

一般想法是将ODBC数据库中的数据加载到pandas个数据帧集中,然后要求pandas将数据转储到SQLite中。

这是这些感兴趣的人的完整代码:

import pyodbc
import sqlite3
import pandas

database_name = input("Enter ODBC database name: ")

source_connection = pyodbc.connect('DSN=' + database_name)
source_cursor = source_connection.cursor()

target_connection = sqlite3.connect(database_name + '.db')

# Ensuring that only 'tables' taken into account, not 'system tables', not 'views'
for table in filter(lambda x: x.table_type == 'TABLE', source_cursor.tables()):
    table_name = table.table_name
    table = pandas.read_sql_query(f"SELECT * from [{table_name}]", source_connection)
    table.to_sql(table_name, target_connection, index_label='index')

source_cursor.close()
source_connection.close()

target_connection.close()