5

私はVS2008で構築されたWebアプリケーションの開発の初期段階です。私は、デスクトップ PC (ほとんどの作業を行う場所) とラップトップ (時々移植するため) の両方を持っており、プロジェクト コードの同期を維持するために AnkhSVN を使用しています。開発データベース (SQL Server Express) も同期する最善の方法は何ですか?

スキーマが変更されたときに再生成する作成スクリプトを含む SVN に VS データベース プロジェクトがあります。当初のアイデアは、何かが変更されるたびに DB を再作成することでしたが、すぐに面倒になりました。また、データが適切に表示されていることを確認するために入力したすべてのサンプル行が失われます。

.MDF ファイルと .LDF ファイルをソース管理下に置くことを検討していますが、SVN Update を実行してファイルがその下からヤンクアウトされ、新しいコピーに置き換えられた場合、SQL Server Express が適切に処理できるとは思えません。いくつかの大きなバイナリ ファイルをソース管理に貼り付けることは、たとえそれが使い捨ての開発データベースであっても、洗練されたソリューションのようには思えません。助言がありますか?

4

4 に答える 4

7

これにアプローチするには明らかに多くの方法があるため、構築するためのより良い基盤を提供する多くのリンクをリストします. これらは、他の人を時流に乗せようとしたときに私が過去に参照したリンクです.

ただし、以上のことをすべて述べても、何らかのタイプのバージョン管理 (手動または半自動のいずれか) を実装することに十分にコミットしていないと思われる場合は、以下を確認することを強くお勧めします。

聖なる牛!人生を楽にすることについて話してください!プロジェクトが私から離れてしまい、複数の人がスキーマの変更を行い、複数の環境を同期させなければなりませんでした。Red Gate 製品を 2 つのデータベースに向けて違いを確認し、それらを同期するのは簡単なことでした。

于 2008-09-03T05:43:39.713 に答える
3

.MDF および .LDF ファイルではなく、データベースのバックアップ (.bak ファイル) を保存できます。
次のスクリプトを使用して、データベースを簡単に復元できます。

use master
go

if exists (select * from master.dbo.sysdatabases where name = 'your_db')
begin
    alter database your_db set SINGLE_USER with rollback IMMEDIATE
    drop database your_db
end

restore database your_db
from disk = 'path\to\your\bak\file'
with move 'Name of dat file' to 'path\to\mdf\file',
     move 'Name of log file'  to 'path\to\ldf\file'
go

上記のスクリプトをテキスト ファイル restore.sql に配置し、次のコマンドを使用してバッチ ファイルから呼び出すことができます。

osql -E -i restore.sql

そうすれば、プロセス全体を自動化するスクリプト ファイルを作成できます。

  • SVN リポジトリまたは適切なストレージから最新のデータベース バックアップを取得します
  • bak ファイルを使用して現在のデータベースを復元する
于 2008-09-03T00:28:30.797 に答える
3

データベースの CREATE スクリプトに加えて、デフォルト データまたはサンプル データ スクリプトも維持してみませんか?

これは、2 年以上維持しているアプリケーションのインクリメンタル バージョンに対して採用したアプローチであり、非常にうまく機能しています。また、デフォルトのデータ スクリプトを使用すると、QA テスターは、所有しているデータを使用してバグを再現できますか?

少し前に投稿した質問もご覧ください。

SQL 変更スクリプトを自動生成するための最適なツール

于 2008-09-03T06:02:35.813 に答える
1

より高い環境からバックアップを取得するという組み合わせを使用します。
ApexSql を使用してスキーマの初期設定を処理するだけでなく、
最近、コード化され、ソース管理され、変更スクリプトを取得するために CI を実行する Subsonic 移行を使用しています。テキサス州の headspring によって開発された「tarantino」プロジェクトもあります。

これらのアプローチのほとんど、特に後者は、ほとんどのテスト データで安全に使用できます。自動化された最後の 2 が特に気に入っています。なぜなら、変更を加えることができ、次に誰かが最新の状態になったときに、「アップデーター」を実行するだけで、最新の状態に誘導されるからです。

于 2008-09-03T05:56:18.170 に答える