none
◆ストアドや関数のソース管理をしたい(Visual Studio 2013 (TFS) ) RRS feed

  • 質問

  • Visual studio 2013 を使用してASP.NET のシステムを開発しています。

    DB は SQL Server 2012 なのですが ストアドや関数、UDTなどのソース管理を行いたいです。

    Visual studio 2013 のサーバーエクスプローラで接続した SQL SERVER のデータべースに対して

     ストアドや関数、UDTなどのソース管理を TFS(Team Foundation server) でできますでしょうか?

    学習できるようなマニュアルがあれば教えていただきたいのですが・・・・・・

    どなたかご教授おねがいいたします。

    • 移動 星 睦美 2014年12月2日 4:04 SQL Server から
    2014年12月2日 2:44

すべての返信

  • フォーラム オペレーターの星 睦美です。
    mynobNNN さん、投稿ありがとうございます。

    質問の内容からVisual Studio Team System フォーラムのほうが回答が集まりやすいように思います。
    のちほど私のほうで質問を移動させていただきますね。

    Visual Studio Team System フォーラム

    役立つ回答がありましたら投稿者からの[回答としてマーク]をお願いします。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2014年12月2日 2:55
  • 根本的なことですが、ソース管理の管理対象となるものは何を想定されていますでしょうか? またソース管理を行いたい理由は何でしょうか?

    質問文を読む限り管理対象は既に動作しているデータベースの具体的にはmdfファイルとも読み取れます。管理を行いたい理由…これが難しいです。一般論としてはバージョン管理し任意の時点に戻せることのはずですが、既に動作しているデータベースを任意の時点に戻すことに意味はない…というかこれはバックアップの範疇です。

    ですがあえてこのフォーラムで質問されているわけですから、やはりバージョン管理したいということだと受け取ります。であれば、もう一度元に戻って管理対象となるのは何か、実は動作しているデータベースではなく、データベースファイルを構築するために必要となるCREATE TABLEなどのスクリプトなどが対象になってくるのではないでしょうか。

    となると質問者さんはそもそも想定していた管理対象を見誤っているのではないかと私は考えます。いかがでしょうか?

    その上で、SQL Server Management Studioを使用しますと既存のデータベースに対して同等のオブジェクトを構築可能なスクリプトを生成することができます。生成されたスクリプトファイルをソース管理されてはどうでしょうか?

    # という回答から考えると当初投稿されたSQL Serverフォーラムで適切だったかなと思います。

    2014年12月2日 8:51
  • VS2013に含まれている「SQL Server データベースプロジェクト」を利用した開発を行うことと、Visual Studioでの通常のアプリケーション開発プロジェクトと同様にデータベースオブジェクトのソース管理などを行うことができます。


    こちらを検討されてみるのはいかがでしょうか。


    「SQL Server データベースプロジェクト」のプロジェクトテンプレートでは、『SQL Server Data Tools(SSDT)』を利用したデータベース開発を行うためのプロジェクトを展開できます。


    詳細については以下のMSDNドキュメントや、関連の文書が参考になると思います。
    プロジェクト指向のオフライン データベース開発


    この「データベースプロジェクト」ベースでの開発では、関数やストアドプロシージャのユニットテストを行う機能なども利用できます。

    ただし、留意点もあります。

    この手法で開発する場合は、今後の開発の"基準"がデータベースプロジェクトになります。

    大雑把にいえば、データベース上のオブジェクトの変更を行う場合、基本的には『まず、このプロジェクト上で開発を行った後、データベースサーバに発行』というフローをとることになると思います。
    (プロジェクト開始時には、データベースサーバから既存のオブジェクトをインポートすることは出来ます)

    もし今までデータベースを直接触って開発されておられたのであれば、考え方や開発フロー、場合によっては体制などの変更も必要になる可能性あるのではないかと思います。

    それらの点も踏まえて検討されると良いのではないでしょうか。



    きよくらならみ

    2014年12月2日 9:53
  • 基本的にVisual Studio側での開発になるというのはそのとおりですが、SQL Serverであればデータベースとデータベースプロジェクトとのスキーマ比較が行えるので、開発自体はマネジメントスタジオで行って変更点をスキーマ比較からデータベースプロジェクトに取り込んでソース管理するという方法でもいい気はします。

    本番に持って行く時は本番とデータベースプロジェクトとのスキーマ比較を行えば差分スクリプトの作成もできますし。


    • 編集済み かるあ 2014年12月3日 4:09
    2014年12月3日 4:08