これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド mysql-schema-diffp です。
プログラム:
NAME
mysql-schema-diff - MySQL データベース スキーマを比較する
SYNOPSIS
mysql-schema-diff [B ]B B
mysql-schema-diff --help
DESCRIPTION
mysql-スキーマ-diff CPAN の Perl スクリプト フロントエンドです。http://www.perl.com/CPAN> モジュール
MySQL::差分http://search.cpan.org/search?module=MySQL::Diff> データを比較します
XNUMX つの MySQL の構造 (つまり、スキーマ/テーブル定義)http://www.mysql.com/>
データベースを検索し、パイプ処理に適した一連の MySQL コマンドとして差分を返します。
に mysqlの これにより、最初のデータベースの構造が次と同じになるように変換されます。
XNUMX番目のもの(参照 差分 patch).
データベース構造は、テーブル定義を含むファイルであるかどうかを比較できます。
ローカルまたはリモートの既存のデータベース。
N.B. プログラムが作るのは、 いいえ に保存されている可能性のあるデータの比較を試みます。
データベース。 これは純粋にテーブル定義を比較するためのものです。 する予定はありません
データ比較を実装します。 それは複雑な問題であり、私にはそのような必要はありません
とにかく機能性。 ただし、別のプログラムcoldiffがあります
<http://rossbeyer.net/software/mysql_coldiff/> これは古いものに基づいています。
プログラムが呼び出されました データ差分 ネットから消えてしまったようです。
PostgreSQL の場合は、pgdiff などの同様のツールがあります。http://pgdiff.sourceforge.net/>および
apgdiffhttp://apgdiff.startnet.biz/>.
例
# XNUMX つのファイルのテーブル定義を比較します
mysql-スキーマ-diff db1.mysql db2.mysql
# ファイル 'db1.mysql' 内のテーブル定義をデータベース 'db2' と比較します
mysql-スキーマ-diff db1.mysql db2
# データベース 'db1' のスキーマを対話的にアップグレードして、
# ファイル「db2.mysql」に記述されたスキーマ
mysql-schema-diff -A db1 db2.mysql
# リモートマシン上の XNUMX つのデータベースのテーブル定義を比較します
mysql-schema-diff --host=remote.host.com --user=myaccount db1 db2
# ローカルデータベース 'foo' のテーブル定義を
# ファイル foo がすでに存在する場合、リモート マシン上のデータベース 'bar'
# カレントディレクトリに存在する
mysql-schema-diff --host2=remote.host.com --password=secret db:foo bar
OPTIONS
詳細については今後お知らせします。 ここでは「mysql-schema-diff --help」を実行します。
内部
比較される両方のデータベース構造について、次のことが起こります。
· 引数が有効なファイル名である場合、そのファイルは一時データベースの作成に使用されます。
正規化された形式でテーブル定義を取得するために「mysqldump -d」が実行されます。
その後、一時データベースが削除されます。 (一時データベースの名前は
「test_mysqldiff_temp_something」は、デフォルトの MySQL 権限により誰でも許可されているためです。
プレフィックス「test_」で始まるデータベースを作成します。)
· 引数がデータベースの場合、「mysqldump -d」がデータベース上で直接実行されます。
· 認証が必要な場合、ホスト名、ユーザー名、およびパスワードは、
対応するオプションが使用されます (詳細については、「mysql-schema-diff --help」と入力してください)。
· テーブル定義の各セットがテーブル、フィールド、インデックス キーに解析されるようになりました。
それらのテーブル内で。 これらが比較され、その差分が次の形式で出力されます。
MySQL ステートメント。
onworks.net サービスを使用してオンラインで mysql-schema-diffp を使用する