【问题标题】:Using two databases with Pyramid SqlAlchemy使用 Pyramid SqlAlchemy 的两个数据库
【发布时间】:2015-04-20 17:31:26
【问题描述】:

我在我的 Linux 机器中有一个使用 Pyramid Alchemy 脚手架配置的 SQLite 数据库。我有另一个远程 Mysql 数据库,它驻留在 Windows 机器中,带有大量数据。现在,我必须连接到远程 Mysql 数据库以提取数据并将它们填充到在 sqlAlchemy 的帮助下我的 Sqlite 数据库。

我一直在做什么:我使用mysql workbench从mysql数据库中查询数据,将结果导出到csv文件,通过python的默认csv模块将csv文件加载到我的金字塔initializedb.py中,然后最后将检索到的行插入到我的 Sqlite 数据库中。

我想做什么:我想从我的 initializedb.py 本身连接到远程 Mysql 数据库,获取结果并将它们插入到我的 sqlite 数据库中。

我该怎么做呢?任何帮助表示赞赏。

【问题讨论】:

    标签: python database sqlalchemy pyramid


    【解决方案1】:

    您可以在 initializedb.py 中创建到您的 mysql 数据库的连接,提取数据并将它们存储到您的本地数据库中。现在,您将在这里找到有关 sqlalchemy 的基础知识: http://docs.sqlalchemy.org/en/rel_0_9/core/tutorial.html

    如果你需要这个可配置的,那么你可以将你的数据库的 url 放入你的配置中,并通过 settings 访问它。

    此外,您不必精确定义表的结构,您可以使用如下内容:

    users = Table('users', metadata, autoload=True)
    

    另一方面,如果您的 MySQL db 结构与 sqlite db 结构相同,则可能可以重用您的模型,但如果没有看到您的任何代码,这可能很难在这里解释。

    【讨论】:

    • 感谢您的解决方案。我昨天想通了,并实现了这个反射机制。我正要在这里更新它。顺便说一句,我应该在哪里创建我的第二个引擎?在我的 initializedb.py 或 models.py 中?
    猜你喜欢
    • 2012-11-29
    • 2013-04-18
    • 2019-05-11
    • 2014-09-03
    • 2015-02-06
    • 2017-07-06
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多