しかし、変更がめったに使用されないテーブルに影響する場合や、一見しただけではその変更が明らかでない場合があります(たとえば、誰かがVARCHARフィールドの長さを変更して行がカットされ始めた、または誰かがインデックスを追加したため、テストベースのクエリが実行されるため)より速く注文します)。
もう1つのオプションは、ソフトウェアを更新し、すべてが機能しなくなったことです。 ゼロからの不可解なエラーの束、アプリケーションは嘘をついており、ユーザーは満足していません。
このような場合、ベースがどのように異なるかを確認し、適切な結論を導き出すことが非常に役立ちます。

何が思い浮かびますか? 1つのベースの構造をダンプしてから、別のベースの構造をダンプします。 diffユーティリティを実行すると、2つのダンプが異なる行が表示されます。 小さな変更の場合、これは機能する可能性があります。 しかし、第一に、これはやや骨の折れる作業であり、第二に、あるデータベースにテーブルがなく、diffが異なるテーブルの比較を開始するスクリーンショットのような状況になることがあります。

これらの問題に直面して、MySQL、MS SQL Server、PostgreSQL(Oracleサポートの計画)で動作し、2つのデータベースを比較できる小さなphpスクリプト( https://github.com/dlevsha/compalex )を書きました。 このスクリプトは依存関係を描画しないため、インストールとサポートが簡素化されます。
動作させるには、スクリプト自体をインストールする必要があります(PDOサポート付きのphp> = 5.4が既にインストールされていると仮定します。インストールされていない場合、debian / ubuntuでaptitude install php5を 1行で実行します。
$ git clone https://github.com/dlevsha/compalex.git $ cd compalex
プロジェクトフォルダーで.environmentを開き、パラメーターを編集します。
[ Main settings ] ; Possible DATABASE_DRIVER: 'mysql', 'pgsql', 'dblib'. ; Please use 'dblib' for Microsoft SQL Server DATABASE_DRIVER = mysql DATABASE_ENCODING = utf8 SAMPLE_DATA_LENGTH = 100 [ Primary connection params ] DATABASE_HOST = localhost DATABASE_NAME = compalex_dev DATABASE_USER = login DATABASE_PASSWORD = password DATABASE_DESCRIPTION = Developer database [ Secondary connection params ] DATABASE_HOST_SECONDARY = localhost DATABASE_NAME_SECONDARY = compalex_prod DATABASE_USER_SECONDARY = login DATABASE_PASSWORD_SECONDARY = password DATABASE_DESCRIPTION_SECONDARY = Production database
サポートされている「mysql」、「pgsql」、「dblib」からDATABASE_DRIVERドライバーを選択します
それぞれ、1番目と2番目のデータベースへの接続を担当する設定を修正します
DATABASE_HOST = localhost DATABASE_NAME = compalex_dev DATABASE_USER = root DATABASE_PASSWORD = password
どのデータベースがどこにあるか混乱しないように-DATABASE_DESCRIPTIONパラメーターに名前を付けます
その後、プロジェクトフォルダに移動して、Webサーバーを起動します
$ php -S localhost:8000
ブラウザで開くhttp:// localhost:8000 /
指定されたデータベースパラメータに従って、2つの列で構成される比較図を表示する必要があります。

要素の目的は図に示されています。
データベースへの直接ローカル接続を整理できない場合があり、コンソールからサーバー上の変更を直接確認する必要があります。
これらの目的のために、HTMLフォーマットとマークアップカラーをサポートするeLinksコンソールブラウザーの使用をお勧めします。
サーバーにスクリプトをインストールし、Webサーバーを起動して(上記を参照)、実行する必要があります。
$ elinks http://localhost:8000
次のことを取得します。

Webサイトの詳細(英語) http://compalex.net/ 。
ここでは、すべてがhttp://demo.compalex.net/で機能する方法を試すことができます 。