ホーム › フォーラム › A5:SQL Mk-2掲示板 › スキーマの比較機能について
- このトピックには6件の返信、2人の参加者があり、最後にotoroにより6年、 7ヶ月前に更新されました。
-
投稿者投稿
-
otoroゲスト
こんにちは。
・使用環境
A5:SQL Mk-2 64bit edition (Portable mode) Version 2.12.3
A5:SQL Mk-2 64bit edition (Portable mode) Version 2.13.0 beta 50
DB:mysqld 10.1.13-MariaDB/InnoDB
OS:Windows10細かな発生条件を特定できていないのですが、「スキーマの比較」を行った際に、両方のデータベースに存在するテーブルの一覧が、そのまま差分として出力されてしまうことがあります。
DB1に100個のテーブル、DB2に150個のテーブルがある状態で比較
↓
DB1とDB2の総テーブル数250件分の「スキーマ localhost/aaa.bbb にテーブル ccc が見つかりません。」というメッセージが出力されます。
実際には重なりのある100個中90個ほどのテーブルは同一名称で、そのうち80個ほどのテーブルは同一構造です。・DB1とDB2、DB2とDB3の比較では現象が必ず再現し、DB1とDB3では再現しないことから、DB2に起因する問題だと思います。
・DB2にのみ、 _ から始まるテーブル名が複数存在します(_tmp_sales)。
・DB2にのみ、数字を含んだテーブル名が存在します(_tmp_ab03)。
・DB2にのみ、34文字の比較的長いテーブル名が存在します。
・DB2にのみ、COLLATE utf8_binで作成したテーブルが存在します。その他はutf8_general_ciです。回避策やお心当たりがあれば教えていただけないでしょうか。
松原正和キーマスターotoro さんこんにちは。
調査したところ、スキーマ名の照合順序がAnsi(Shift_JIS)で行っている箇所と、Unicodeで行っている箇所が在りました。多分それが原因ではないかと思います。
Version 2.13.0 release candidate 1で修正してみましたのでご確認いただければと思います。
otoroゲストこんにちは、ご対応ありがとうございます。
「a5m2_2.13.0_rc1_x64」にて、問題の起きていたDB2とその他のDB間の比較も可能になっていました。
ただ、使用上問題はないものの、その結果の中に次のようなメッセージが表示されるテーブルがいくつかありましたので、追加でご報告させていただきます。12テーブル localhost/DB2.DB2.aaa にインデックス PRIMARY が見つかりません。テーブル localhost/DB1.DB1.aaa にインデックス code が見つかりません。
`テーブル localhost/DB1.DB1.aaa にインデックス PRIMARY が見つかりません。それらに共通しているのは、
・テーブルに code という名称のカラムを含んでいる
・DB2側に code という名称のインデックスを追加している
・DB1側(3行目)の PRIMARY という文字が青文字で出力されている(1行目のPRIMARYは通常の黒字)
・DB1側には元々1件しかレコードがなく、PRIMARY KEY idの指定はあるもののその他のインデックスが存在せずINDEX_LENGTHが0の状態
・スキーマ1,2の指定を逆にしても状況は変わらない
ということくらいだと思います。松原正和キーマスターotoroさんこんにちは。
はい、すみません、テーブル名のところだけかと思っていたところ、他の箇所でも並べ替えはANSIで行って、その後の比較をUnicodeで行うために照合順序がおかしくなっている箇所が在りました。
Version 2.13.0 release candidate 2で修正しましたのでご確認ください。
otoroゲストこんにちは、ご対応ありがとうございます。
さっそく2.13.0 RC2で試させていただいたのですが、色々選択肢を変更してみても、PRIMARYが差分として出てしまう現象はRC1の状態から変化しませんでした。
これに関係がある事柄かは分からないのですが、2.13.0のbeta28(27は2.12.3と同じ)から、テーブルのソースタブの予約語(int、NOT NULL、COMMENT等)のカラーリングが失われていて、「CREATE TABLE(青文字)」~「PRIMARY KEY(青文字)」の間にある通常のテーブル列の部分が、全て黒文字表示になっていました。
それが意図されている仕様なら問題ないのですが、もしかしたらその辺りで、何かをうまく検出できていないのかなと思いました。松原正和キーマスターotoroさんこんにちは。
はい、確認したところ、まだ大文字小文字の扱いのおかしいところがありました。どうも、PRIMARYやcodeのように大文字小文字のインデックス名が混在していた際に問題が起こっていたようです。
version 2.13.0 release candidate 3で修正してみましたのでご確認お願いします。
otoroゲストこんにちは、ご対応ありがとうございます。
RC3にて、スキーマの比較と、ソースタブの文字表示が、正常に動作するようになっているのを確認いたしました。
別々の問題だったようですが、両方ともご対応していただいたようで、本当にありがとうございました。 -
投稿者投稿