我有一个带有一堆MySQL表的旧PHP应用程序。我想用Rails(3)重写它并想要导入旧数据。如何编写迁移脚本以将MySQL-Dump导入sqlite DB?
答案 0 :(得分:0)
判断为什么要从mysql迁移到sqlite3 db是不合理的。为什么不在mysql中运行你的开发环境呢?无论如何,以下是剧本。
#!/bin/sh
mysqldump --compact --compatible=ansi --default-character-set=binary mydbname |
grep -v ' KEY "' |
grep -v ' UNIQUE KEY "' |
perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' |
perl -pe '
if (/^(INSERT.+?)\(/) {
$a=$1;
s/\\'\''/'\'\''/g;
s/\\n/\n/g;
s/\),\(/\);\n$a\(/g;
} ' | sqlite3 output.db
答案 1 :(得分:0)
我使用DATA DB转储(而不是架构)解决了问题,并使用另一个迁移文件和create_table
创建了表。