2

問題は、独自のアプリケーションを介して常に更新されている SQLite データベースを持っていることです。

MySQL を使用するアプリケーションを構築していますが、データベースの設計は SQLite のものとは大きく異なります。

次に、SQLite から MySQL にデータをコピーする必要がありますが、すべてを移動する必要はなく、テーブルとフィールドの名前が異なり、1 つのテーブルのデータが 2 つのテーブル (またはその逆) に移動する場合があるため、非常に慎重に行う必要があります。

つまり、SQLite は MySQL のクライアントとして動作し、自動化された方法で新しいものを挿入し、古いものを更新する必要があります。リアルタイムで更新する必要はありません。X時間ごとで十分です。

Google検索でこれが得られました: http://migratedb.sourceforge.net/

そして、友人に尋ねて、次のページで Multisource プラグイン (Squirrel SQL) に関する情報を得ました: http://squirrel-sql.sourceforge.net/index.php?page=plugins

問題を解決するためのより良い方法があるかどうか、または自分でカスタム スクリプトを作成する必要があるかどうかを知りたいです。

ありがとうございました!

4

2 に答える 2

1

これにはカスタム スクリプトをお勧めします。

  1. テーブルとフィールド間の 1 対 1 の変換でない場合、ツールは役に立たない可能性があります。あなたの質問では、次のように述べています。

    ...そして、1 つのテーブルのデータが 2 つのテーブル (またはその逆) に移動する場合があります。

  2. 違いだけが必要な場合は、SQLite データベースのすべてのレコードにタイムスタンプがない限り、そのためのロジックを構築する必要があります。

  3. MySQL データベースをまったく更新する予定はありますか? そうでない場合、MySQL データベースを完全に削除し、SQLite からのすべてのデータで X 時間ごとに更新してもよろしいですか?

また、スクリプト言語 (php、python、perl、ruby など) に慣れている場合は、SQLite と MySQL の両方の API があります。プログラムロジックに基づいてカスタマイズをより簡単に制御できる独自のスクリプトを作成するのは簡単です。特に、単純なマッピングだけでなく、あるデータから別のデータへの「変換」を実行したい場合。

于 2012-09-14T06:55:06.360 に答える
0

SQLite DB に保存されているデータを定期的に MySQL DB にフラッシュすることを正しく理解していただければ幸いです。右?

だから、これは私がそれを行う方法です。

  1. x 分ごとにスクリプトを開始する Cron を作成します。
  2. データを SQLite から CSV ファイルにエクスポートします。
  3. LOAD DATA INFILECSV データを MySQL にインポートします。

のコード例LOAD DATA INFILE

LOAD DATA INFILE 'PATH_TO_EXPORTED_CSV' REPLACE INTO TABLE your_table FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\\n' IGNORE 1 LINES ( @value_column1, @unimportend_value, @value_column2, @unimportend_value, @unimportend_value, @value_column3) SET diff_mysql_column1 = @value_column1, diff_mysql_column2 = @value_column2, diff_mysql_column3 = @value_column3);

このコードは、必要な数の db テーブルにクエリを実行できます。また、変数を変更することもできます@value_column1。私は急いでね。今のところそれです。何か不明な点があるかどうか尋ねます。マイケルに挨拶

于 2012-09-14T06:12:41.717 に答える