質問

レガシーWebアプリのデータベースをSQL ServerからMySQLに移行したい。私が注意しなければならないMySQLの制限は何ですか?そして、実際にコードを変更する前に、すべての項目が包括的なチェックリストの一部になるのでしょうか?

役に立ちましたか?

解決

最初に確認するのはデータ型です-データ型の正確な定義はデータベースごとに異なります。各データ型のマッピング先を示すマッピングリストを作成します。これは、新しいテーブルの作成に役立ちます。また、現在使用されていないデータテーブルまたは列を確認します。それらを移行しても意味がありません。関数、ジョブ、spsなどで同じことを行います。今は迷惑メールを削除するときです。

どのようにデータベースからspsまたは動的クエリを介してデータにアクセスしますか?新しいdevデータベースに対して実行して各クエリをチェックし、それらがまだ機能することを確認します。繰り返しますが、SQlの2つのフレーバーの動作には違いがあります。私はSQLを使用していませんので、いくつかの一般的な障害ポイントが何であるかわかりません。その間、新しいクエリの時間を計り、最適化できるかどうかを確認することをお勧めします。最適化もデータベースごとに異なりますが、その間、おそらく移行の一部として修正できるパフォーマンスの低いクエリがいくつかあります。

ユーザー定義関数も参照する必要があります。これを行う場合、これらを忘れないでください。

スケジュールされたジョブを忘れないでください。これらもmyslqでチェックおよび再作成する必要があります。

定期的なスケジュールでデータをインポートしていますか?すべてのインポートを書き直す必要があります。

すべての鍵は、テストデータベースとテスト、テスト、テストを使用することです。特に四半期または年次のレポートや、忘れてしまう可能性のある仕事をすべてテストします。

もう1つやりたいことは、バージョン管理されているスクリプトを使用してすべてを実行することです。 devですべてのスクリプトを順番に実行してエラーが発生するまで、実稼働に移行しないでください。

他のヒント

忘れてしまったことの1つは、移行を実行しているdevデータベース(SQLサーバーデータベース)が各テスト実行の直前に本番から更新されていることを確認することです。古いレコードに対してテストを行っていたため、prodで何かが失敗することを嫌います。

クライアントコードは、変更が最も複雑な部分であることがほぼ確実です。アプリケーションに非常に高品質のテストスイートがない限り、多くのテストを行う必要があります。あなたが期待するかもしれないことでさえ、あなたは同じように働くものに頼ることはできません。

はい、データベース自体を変更する必要がありますが、クライアントコードは主なアクションであり、大量の作業と厳格なテストが必要です。

データの移行は忘れてください。これが最後に考えなければならないことです。データベーススキーマは、おそらくそれほど困難なく変換できます。他のデータベースオブジェクト(SP、ビューなど)は問題を引き起こす可能性がありますが、クライアントコードは問題の焦点となる場所です。

データベースクエリを実行するほとんどすべてのルーチンを変更する必要がありますが、絶対にすべてのルーチンをテストする必要があります。これは簡単なことです。

現在、アプリケーションのメインデータベースをMySQL 4.1から5に移行することを検討していますが、これはそれほど大きな違いではありませんが、それでも非常に大きなタスクになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top