21

現在、SQLite データベースに変換したい比較的小さな (4 または 5 テーブル、5000 行) MySQL データベースがあります。これを複数回行う必要がある可能性があるため、誰かが便利なツール、または少なくとも簡単に複製できる方法を推奨できれば幸いです。

(関連するデータベース/マシンへの完全な管理者アクセス権があります。)

4

4 に答える 4

6

私は同様のことを数回しなければなりませんでした。私にとって最も簡単な方法は、1 つのデータ ソースからプルして新しいデータ ソースの出力を生成するスクリプトを作成することでした。SELECT *現在のデータベースの各テーブルに対してクエリを実行し、すべての行を新しいデータベースのクエリにダンプしますINSERT INTO。これをファイルにダンプするか、データベース フロントエンドに直接パイプすることができます。

きれいではありませんが、正直なところ、このようなことについてはほとんど問題にならないようです。この手法はすばやく記述でき、機能します。これらは、このようなことに対する私の主な基準です。

このスレッドもチェックしてみてください。基本的に必要なものはすでに数人がまとめているようです。ただし、そこまで詳しく調べていないので、保証はありません。

于 2008-08-10T19:25:58.200 に答える
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を使用します。

コメント構文、auto_increment&TYPE =宣言、およびエスケープ文字だけが異なります。

于 2008-08-10T15:25:27.500 に答える
2

コンバーターのリストは次のとおりです。


うまく機能するがめったに言及されない別の方法は、特定のデータベースの違いを抽象化する ORM クラスを使用することです。たとえば、これらは PHP ( RedBean )、Python (Django の ORM レイヤー、StormSqlAlchemy )、Ruby on Rails ( ActiveRecord )、Cocoa ( CoreData )で取得できます。

つまり、これを行うことができます:

  1. ORM クラスを使用して、ソース データベースからデータを読み込みます。
  2. データをメモリに保存するか、ディスクにシリアル化します。
  3. ORM クラスを使用してソース データベースにデータを格納します。
于 2011-05-14T07:13:30.000 に答える
1

ほんの数テーブルの場合は、好みのスクリプト言語でこれをスクリプト化し、すべての返信を読んだり、適切なツールを追跡したりするのにかかる時間までにすべてを実行することができます。とにかく。:)

于 2008-08-10T15:23:55.693 に答える