代码之家  ›  专栏  ›  技术社区  ›  Yann Ramin

将mysql数据库转换为sqlite数据库的最佳方式是什么?

  •  19
  • Yann Ramin  · 技术社区  · 17 年前

    (我对所涉及的数据库/机器具有完全的管理员权限。)

    4 回复  |  直到 16 年前
        1
  •  6
  •   Derek Park    17 年前

    我也做过几次类似的事情。对我来说,最简单的方法是编写一个脚本,从一个数据源中提取并为新数据源生成一个输出。做一个 SELECT * INSERT INTO 查询新数据库。您可以将其转储到一个文件中,也可以直接通过管道传输到数据库前端。

    这并不漂亮,但老实说,对于这样的事情来说,漂亮似乎不是什么大问题。这种方法写起来很快,而且很有效。这是我对这类事情的主要标准。

    你可能想退房 this thread ,也是。看起来有几个人已经基本上把你需要的东西准备好了。不过,我没有深入研究,所以没有保证。

        2
  •  2
  •   Terry G Lorber    17 年前

    只要MySQL转储文件不超过 SQLite

     tgl@moto~$ mysqldump old-database > old-database-dump.sql
     tgl@moto~$ sqlite3 -init old-database-dump.sql new-database
    

    我自己没试过。

    看来您需要对MySQL转储进行一些编辑。我会用sed,或者 Google for it.

    只是注释语法、auto\u increment&TYPE=declaration和转义字符不同。

        3
  •  2
  •   David d C e Freitas    14 年前


    另一种可以很好地工作但很少被提及的方法是:使用一个ORM类,为您抽象出特定的数据库差异。e、 你可以在PHP中得到这些( RedBean ),Python(Django的ORM层, Storm , SqlAlchemy ),Ruby on Rails公司( ActiveRecord ),可可( CoreData )

    i、 你可以这样做:

    1. 使用ORM类从源数据库加载数据。
    2. 将数据存储在内存中或序列化到磁盘。
        4
  •  1
  •   erlando    17 年前

    如果只是几个表,你可以用你喜欢的脚本语言编写脚本,然后在阅读所有回复或找到合适的工具之前完成。我无论如何都会的。:)