2017-01-18 16 views
2

私はRedGate SQL Toolbeltを使用してデータベース全体のCIを使用できるようにしています。スキーマや静的データに対するニーズを容易にする方法に慣れています。RedGate SQLソース管理データ

ただし、CIで管理して使用する他のテーブルには一定量のデータが存在します。これらの表には、100万のレコードがあり、ソース管理が必要なレコードはほんの一握りです。データベース設計とは、このデータをソース管理できる別のテーブルに入れることができないことを意味します。

良い例としては、管理者またはシステムユーザーをソース管理して、CIに含めることができますが、実際のユーザーを除外したいユーザーテーブルがあります。

RedGateは2011年中頃から約request for filtered static dataになりました。この制限を回避するための賢明な方法を考案した人がいるのでしょうか?

答えて

0

私は、移行スクリプトを含むソリューションを試しましたが、実行される順序はまだ問題を引き起こしていました。

私が最終的に選択した解決策は、ソースコントロールにリンクされた別のデータベースと、レコードソースを制御するためのシステムデータまたは混合データを含むすべてのテーブルを持つことでした。

次に別のデータベースで開発し、スキーマとデータの変更をソース管理データベースにプッシュしてコミットします。このようにして、ソース管理データテーブルには「ユーザー」データが含まれません。

DLM Automation Cmdletの機能が不足していて、SQLの比較とSQLデータの比較がコマンドラインを使用して実行されていることがわかりました。これはちょっとした問題ではありませんでしたが、前述のツールを使用して手動でSCからCIデータベースにプッシュして解決されています。

0

私は考えることができるすべては、次のようになります。

  1. はカジュアルユーザー
  2. のための2つのテーブル
  3. 一つを持っているあなたは、静的データ
  4. を持ちたい、スーパーユーザーのための一つは、ちょうど、スーパーユーザーをコミットテーブルデータをソース管理に変換する
  5. UNION ALL両方のテーブルを作成する
  6. コード内の実際のテーブル

多分それはそれを行うには一番良い方法ではありませんが、あなたのユースケースではうまくいくはずです。

+0

フィードバックいただきありがとうございます。私の実際の生活のシナリオでは実現不可能ないくつかの理由から。最も重大な問題は、テーブルにUserID外部キーが必要な場合、そのテーブルを2つのテーブルのいずれかにしかリンクできないことです。 –

+0

@DanDef私は、各CIビルドでトリガされる移行スクリプトを準備し、静的データを無視することが可能かどうか疑問に思っています。 –

+0

ええ、私は見ていました今日は午後に使ってみようと思っています... –

関連する問題