SQL Server データベース プロジェクトを使用してDBのリファクタリングを行う
はじめに
明けましておめでとうございます。本年もよろしくお願いいたします。去年はあまり更新できなかったので、今年はもっと増やしていきたいですね。
さて、Visual Studio で作成できるプロジェクトの中には、「SQL Server データベース プロジェクト」なんてものがあります。
これを利用すると、SQLのDDL文(Create Table等)やストアドプロシージャをプロジェクトとして管理することが出来ます。
プロジェクトをバージョン管理システムに追加すれば、変更履歴の管理も可能。
DDLの新規追加・編集・削除などプロジェクトに加えた変更を、画面操作でDBに反映する!なんてことも出来てしまう。
以下のブログで、画面つきの詳しい説明がされています。
2014年の記事だけど、Visual Studio 2017 でも同様に操作可能です。
上記記事でも取り上げていますが、以下の点がとても便利です。
プロジェクトを公開して、データベースを作成・更新する
テーブルスキーマの比較を行い、同期する
複数の発行先を切り替えることが出来る
これがあれば、Code First Migrations をわざわざ使う必要は無いですね。
DBのリファクタリングを行う
これだけだとタイトルに偽りありになってしまうので、自分の行っているリファクタリング手順を載せておきます。既にDBが存在する前提です。
ローカルPCでSQL Serverを実行し、DBを作成してSQLを実行してテーブルを作成する
ローカルPCのDBとデータベースプロジェクトのスキーマ比較を行って、データベースプロジェクトを更新
Entity Framework を使用した開発を行っている場合は、さらに以下を行います。
データベースからのCode First を行い、Models配下のクラス、DBContextクラスを更新する
アプリケーションを起動し、LocalDB の再作成を行う
動作確認を行った後、バージョン管理システムに登録し、テスト環境に反映します。
変更内容をコミットして、プルリクエストを作成し、レビューを行う
マージされたら、データベースプロジェクトを公開し、テスト環境のDBに反映する
アプリケーションプロジェクトを公開し、テスト環境へデプロイする
以上です。