我目前有一个相对较小的(4或5个表,5000行)MySQL数据库,我想将其转换为sqlite数据库。由于我可能不得不多次这样做,如果有人可以推荐任何有用的工具,或者至少任何易于复制的方法,我将不胜感激。
(我对所涉及的数据库/机器拥有完全的管理员权限。)
答案 0 :(得分:5)
我不得不做几次类似的事情。对我来说最简单的方法是编写一个脚本,该脚本从一个数据源获取并为新数据源生成输出。只需对当前数据库中的每个表执行SELECT *
查询,然后将所有行转储到新数据库的INSERT INTO
查询中。您可以将其转储到文件中,也可以直接将其传输到数据库前端。
它并不漂亮,但说实话,对于像这样的事情来说,似乎并不是一个主要问题。这种技术写得很快,而且很有效。这些是我这样做的主要标准。
您也可以查看this thread。看起来好几个人基本上已经把你需要的东西放在一起了。不过,我看起来并不那么远,所以没有保证。
答案 1 :(得分:2)
只要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_increment& TYPE =声明,转义字符不同。
答案 2 :(得分:2)
以下是转换器列表:
<小时/> 一种可以很好地工作但很少被提及的替代方法是:使用ORM类来为您抽象出特定的数据库差异。例如你可以用PHP(RedBean),Python(Django的ORM层,Storm,SqlAlchemy),Ruby on Rails( ActiveRecord),Cocoa(CoreData )
即。你可以这样做:
答案 3 :(得分:1)
如果它只是几张表,您可以在首选的脚本语言中编写脚本,并在读取所有回复或追踪合适的工具时完成所有操作。我会的。 :)