4

SQL Server2008R2がインストールされているビルドサーバーでVS2010データベースの展開に失敗します。関連する出力は次のとおりです。

Acme.Databaseを作成しています...

D:\ TeamCity \ BuildAgent \ Work \ da2fc5ebd5805d44 \ src \ Acme.Database \ sql \ Acme.Database.sql(30,0):エラーSQL01268:.Net SqlClientデータプロバイダー:メッセージ5133、レベル16、状態1、行1ファイル"C:\ Program Files \ Microsoft SQL Server ** MSSQL10.MSSQLSERVER ** \ MSSQL \ DATA \ Acme_Database_log.ldf"のディレクトリルックアップが、オペレーティングシステムエラー3で失​​敗しました(システムは指定されたパスを見つけることができません)。

D:\ TeamCity \ BuildAgent \ Work \ da2fc5ebd5805d44 \ src \ Acme.Database \ sql \ Acme.Database.sql(30,0):エラーSQL01268:.Net SqlClientデータプロバイダー:メッセージ1802、レベル16、状態1、行1 CREATEDATABASEが失敗しました。リストされている一部のファイル名を作成できませんでした。関連するエラーを確認してください。

バッチの実行中にエラーが発生しました。

実際のパスは次のとおりです。

C:\ Program Files \ Microsoft SQL Server ** MSSQL10_50.MSSQLSERVER ** \ MSSQL \ DATA \ Acme_Database.mdf

データベースプロジェクトで見つけたパスへの唯一の参照は、ルートフォルダー(次のファイル)にありました。

PRIMARY.Acme_Database.sqlfile.sql

_50パスを使用するように変更したALTERDATABASEステートメントが含まれていますが、これで問題が解決しませんでした。

いずれにせよ、dbプロジェクトが実際のデータベースMDFファイルの場所を知る必要がある理由はわかりません。TSQLを介して接続できると思っていたのですが、いずれの場合もプロジェクトをデプロイできません。このエラーで、助けていただければ幸いです。

4

4 に答える 4

10

スキーマオブジェクト\データベースレベルオブジェクト\ストレージ\ファイルで「ファイル」を指定すると([アイテムの追加]、[ファイル]を使用)、パスで指定された値がサーバーから検索された値を上書きすることがわかります。それらを指定する必要がある場合は、sqlcmdvariables $(DefaultdataPath)$(Databasename)の変数を使用して入力します。

于 2010-09-03T19:05:36.403 に答える
2

サーバー自体のデフォルトのファイルパスを確認してください。

スクリーンキャスト:http ://screencast.com/t/OWM5ODFjZj

パスが指定されていないという事実が問題である可能性があります。

[更新]これを提案する理由は、デプロイメントスクリプトの作成中に、[プロジェクト設定]-> [デプロイメント]タブで設定を指定していない場合、DefaultDataPathがターゲットサーバーのパスから検索されるためです。

于 2010-09-02T18:21:53.297 に答える
1

TeamCityについては何も知らないので、これはばかげた質問かもしれませんが、どのように展開を行っていますか?DBプロジェクトのMSBuildデプロイタスクは、データパスを提供するプロパティを取得できるようです。

http://www.codewrecks.com/blog/index.php/2009/10/06/deploy-a-database-project-with-tfs-build/

そのようにパスを設定できますか?

于 2010-09-02T15:11:55.503 に答える
1

同じエラーが発生しましたが、別の解決策がありました。私にとってはすべてが正しかったのですが (私が知る限り)、生成されたデプロイ スクリプトはデータベース名変数の前にパス変数を設定しました。その結果、存在しない変数への参照が発生しました。データベース名の値をハードコーディングするように Database.sqlcmdvars を更新しました - ベスト プラクティスではありませんが、私のニーズには十分な回避策です。

于 2012-01-20T17:31:43.967 に答える