sql >> データベース >  >> RDS >> Mysql

過剰なキルなしでmysqlスキーマのバージョン管理から始めます。良い解決策?

    中小企業向けの簡単な方法:データベースをSQLにダンプし、リポジトリに追加します。その後、何かを変更するたびに、ダンプファイルに変更を追加します。

    その後、diffを使用してバージョン間の変更を確認できます。もちろん、変更を説明するコメントもあります。これにより、MySQLのアップグレードの影響を実質的に受けなくなります。

    これに私が見た1つの欠点は、SQLをダンプファイルに手動で追加することを忘れないようにする必要があることです。常に覚えるように自分を訓練することはできますが、他の人と一緒に作業する場合は注意が必要です。更新が欠落していると、後で苦痛になる可能性があります。

    これは、Subversionに送信するときに実行するための複雑なスクリプトを作成することで軽減できますが、1人でのショーには少し手間がかかります。

    編集: この回答から過ぎ去った年に、私は小さなチームのためにMySQLのバージョニングスキームを実装しなければなりませんでした。コメントで言及されているように、各変更を手動で追加するのは面倒な解決策と見なされていたため、データベースをダンプして、そのファイルをバージョン管理に追加しました。

    私たちが見つけたのは、テストデータが最終的にダンプに入れられ、何が変更されたかを把握するのが非常に困難になっていることでした。これはスキーマのみをダンプすることで解決できましたが、アプリケーションが機能するためにデータベース内の特定のデータに依存していたため、プロジェクトではこれは不可能でした。最終的に、データベースダンプに手動で変更を追加することに戻りました。

    これは最も単純なソリューションであるだけでなく、MySQLの一部のバージョンでエクスポート/インポートに関して発生する特定の問題も解決しました。通常、開発データベースをダンプし、テストデータ、ログエントリなどを削除し、該当する場合は特定の名前を削除/変更してから、本番データベースを作成できるようにする必要があります。手動で変更を追加することで、最終的に本番環境に移行する内容を少しずつ正確に制御できるため、最終的にはすべての準備が整い、本番環境への移行が可能な限り簡単になりました。



    1. PHP/MySQLでの再帰的コメントの実装

    2. SQL2つの異なるテーブルの2つの列を比較する方法

    3. Oracleで科学的記数法で数値をフォーマットする方法

    4. Xamarin.FormsのSQLServerデータベースに直接アクセスする