このチュートリアルでは、データ生成計画を作成および実行し、ランダムに生成されたデータをテスト データベースに入力します。 最初にデータベース プロジェクトを作成し、隔離されたテスト データベースにそれを配置します。 隔離されたデータベースを使用すると、実行用のデータやデータベースに影響を与えずにデータ生成をテストできます。
必須コンポーネント
このチュートリアルを完了するには、次の製品がインストールされている必要があります。
Visual Studio Premium
SQL Server 2008 または SQL Server 2005
データベース プロジェクトの作成
最初に、データベース プロジェクトを作成し、スクリプトからスキーマをインポートします。
注意
チーム環境では、データベース プロジェクトの作業を行うために、バージョン管理から既存のプロジェクトをチェックアウトできます。 詳細については、「データベースのチーム開発の開始」を参照してください。
データベース スクリプトを作成するには
[ファイル] メニューの [新規作成] をポイントし、[ファイル] をクリックします。
[新しいファイル] ダイアログ ボックスが表示されます。
[カテゴリ] ボックスの一覧で、[全般] がまだ強調表示されていない場合は、クリックします。
[テンプレート] ボックスの一覧の [SQL ファイル] をクリックし、[開く] をクリックします。
Transact-SQL エディターが表示されます。
次の Transact-SQL コードをコピーし、Transact-SQL エディターに貼り付けます。
PRINT N'Creating dbo.Customer...'; GO CREATE TABLE [dbo].[Customer] ( [CustomerId] UNIQUEIDENTIFIER NOT NULL, [UserId] UNIQUEIDENTIFIER NOT NULL, [UserName] VARCHAR (256) NOT NULL ); GO PRINT N'Creating dbo.Menu...'; GO CREATE TABLE [dbo].[Menu] ( [MenuId] UNIQUEIDENTIFIER NOT NULL, [RestaurantId] UNIQUEIDENTIFIER NOT NULL, [StartDate] DATETIME NOT NULL, [EndDate] DATETIME NOT NULL, [MenuType] VARCHAR (50) NULL ); GO PRINT N'Creating dbo.MenuItem...'; GO CREATE TABLE [dbo].[MenuItem] ( [MenuItemId] UNIQUEIDENTIFIER NOT NULL, [MenuId] UNIQUEIDENTIFIER NOT NULL, [Name] VARCHAR (128) NULL, [Description] VARCHAR (512) NULL, [ImageLocation] VARCHAR (MAX) NULL, [Price] MONEY NULL, [PreparationTime] INT NULL ); GO PRINT N'Creating dbo.Order...'; GO CREATE TABLE [dbo].[Order] ( [OrderId] UNIQUEIDENTIFIER NOT NULL, [SubmittedDate] SMALLDATETIME NOT NULL, [CustomerID] UNIQUEIDENTIFIER NOT NULL, [Total] MONEY NOT NULL, [ContactTelephone] CHAR (20) NULL, [PostalCode] CHAR (10) NULL, [State] CHAR (2) NULL, [StreetAddress] VARCHAR (75) NULL, [City] VARCHAR (25) NULL ); GO PRINT N'Creating dbo.OrderDetail...'; GO CREATE TABLE [dbo].[OrderDetail] ( [OrderDetailId] UNIQUEIDENTIFIER NOT NULL, [OrderId] UNIQUEIDENTIFIER NOT NULL, [RestaurantId] UNIQUEIDENTIFIER NOT NULL, [MenuItemId] UNIQUEIDENTIFIER NOT NULL, [DeliveryId] UNIQUEIDENTIFIER NOT NULL, [Quantity] INT NOT NULL, [UnitCost] MONEY NOT NULL, [Status] NCHAR (20) NOT NULL, [StatusUpdatedTime] SMALLDATETIME NOT NULL, [WorkflowId] UNIQUEIDENTIFIER NOT NULL, [ETA] SMALLDATETIME NULL ); GO PRINT N'Creating dbo.OrderPayment...'; GO CREATE TABLE [dbo].[OrderPayment] ( [PaymentID] UNIQUEIDENTIFIER NOT NULL, [OrderID] UNIQUEIDENTIFIER NOT NULL, [CreditCardNumber] CHAR (4) NULL, [NameOnCard] VARCHAR (75) NULL, [Address] VARCHAR (50) NULL, [Country] VARCHAR (50) NULL, [City] VARCHAR (50) NULL, [State] VARCHAR (50) NULL, [PostalCode] CHAR (10) NULL, [ExpirationDate] SMALLDATETIME NULL, [CreditCardType] VARCHAR (50) NULL ); GO PRINT N'Creating dbo.Restaurant...'; GO CREATE TABLE [dbo].[Restaurant] ( [RestaurantId] UNIQUEIDENTIFIER NOT NULL, [Name] VARCHAR (256) NULL, [Description] VARCHAR (1024) NULL, [RestaurantCategoryId] UNIQUEIDENTIFIER NOT NULL, [LogoImageLocation] NVARCHAR (MAX) NULL, [SmallLogoImageLocation] NVARCHAR (MAX) NULL, [BannerImageLocation] NVARCHAR (MAX) NULL, [MainImageLocation] NVARCHAR (MAX) NULL, [BackgroundLocation] NVARCHAR (MAX) NULL, [PostalCode] VARCHAR (128) NOT NULL, [StreetAddress] VARCHAR (256) NULL, [City] VARCHAR (512) NULL, [State] VARCHAR (256) NULL ); GO PRINT N'Creating dbo.RestaurantCategory...'; GO CREATE TABLE [dbo].[RestaurantCategory] ( [RestaurantCategoryId] UNIQUEIDENTIFIER NOT NULL, [Description] VARCHAR (255) NOT NULL ); GO PRINT N'Creating dbo.Default_Menu_StartDate...'; GO ALTER TABLE [dbo].[Menu] ADD CONSTRAINT [Default_Menu_StartDate] DEFAULT GETDATE() FOR [StartDate]; GO PRINT N'Creating dbo.PK_Customer...'; GO ALTER TABLE [dbo].[Customer] ADD CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED ([CustomerId] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF); GO PRINT N'Creating dbo.PK_Menu...'; GO ALTER TABLE [dbo].[Menu] ADD CONSTRAINT [PK_Menu] PRIMARY KEY CLUSTERED ([MenuId] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF); GO PRINT N'Creating dbo.PK_MenuItem...'; GO ALTER TABLE [dbo].[MenuItem] ADD CONSTRAINT [PK_MenuItem] PRIMARY KEY CLUSTERED ([MenuItemId] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF); GO PRINT N'Creating dbo.PK_Order2...'; GO ALTER TABLE [dbo].[Order] ADD CONSTRAINT [PK_Order2] PRIMARY KEY CLUSTERED ([OrderId] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF); GO PRINT N'Creating dbo.PK_OrderDetail...'; GO ALTER TABLE [dbo].[OrderDetail] ADD CONSTRAINT [PK_OrderDetail] PRIMARY KEY CLUSTERED ([OrderDetailId] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF); GO PRINT N'Creating dbo.PK_OrderPayment...'; GO ALTER TABLE [dbo].[OrderPayment] ADD CONSTRAINT [PK_OrderPayment] PRIMARY KEY CLUSTERED ([PaymentID] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF); GO PRINT N'Creating dbo.PK_Restaurant...'; GO ALTER TABLE [dbo].[Restaurant] ADD CONSTRAINT [PK_Restaurant] PRIMARY KEY CLUSTERED ([RestaurantId] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF); GO PRINT N'Creating dbo.PK_RestaurantCategory...'; GO ALTER TABLE [dbo].[RestaurantCategory] ADD CONSTRAINT [PK_RestaurantCategory] PRIMARY KEY CLUSTERED ([RestaurantCategoryId] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF); GO PRINT N'Creating dbo.FK_Menu_Restaurant...'; GO ALTER TABLE [dbo].[Menu] ADD CONSTRAINT [FK_Menu_Restaurant] FOREIGN KEY ([RestaurantId]) REFERENCES [dbo].[Restaurant] ([RestaurantId]) ON DELETE NO ACTION ON UPDATE NO ACTION; GO PRINT N'Creating dbo.FK_MenuItem_Menu...'; GO ALTER TABLE [dbo].[MenuItem] ADD CONSTRAINT [FK_MenuItem_Menu] FOREIGN KEY ([MenuId]) REFERENCES [dbo].[Menu] ([MenuId]) ON DELETE NO ACTION ON UPDATE NO ACTION; GO PRINT N'Creating dbo.FK_Order2_Customer...'; GO ALTER TABLE [dbo].[Order] ADD CONSTRAINT [FK_Order2_Customer] FOREIGN KEY ([CustomerID]) REFERENCES [dbo].[Customer] ([CustomerId]) ON DELETE NO ACTION ON UPDATE NO ACTION; GO PRINT N'Creating dbo.FK_OrderDetail_MenuItem...'; GO ALTER TABLE [dbo].[OrderDetail] ADD CONSTRAINT [FK_OrderDetail_MenuItem] FOREIGN KEY ([MenuItemId]) REFERENCES [dbo].[MenuItem] ([MenuItemId]) ON DELETE NO ACTION ON UPDATE NO ACTION; GO PRINT N'Creating dbo.FK_OrderDetail_Order2...'; GO ALTER TABLE [dbo].[OrderDetail] ADD CONSTRAINT [FK_OrderDetail_Order2] FOREIGN KEY ([OrderId]) REFERENCES [dbo].[Order] ([OrderId]) ON DELETE CASCADE ON UPDATE CASCADE; GO PRINT N'Creating dbo.FK_OrderDetail_Restaurant...'; GO ALTER TABLE [dbo].[OrderDetail] ADD CONSTRAINT [FK_OrderDetail_Restaurant] FOREIGN KEY ([RestaurantId]) REFERENCES [dbo].[Restaurant] ([RestaurantId]) ON DELETE NO ACTION ON UPDATE CASCADE; GO PRINT N'Creating dbo.FK_OrderPayment_Order...'; GO ALTER TABLE [dbo].[OrderPayment] ADD CONSTRAINT [FK_OrderPayment_Order] FOREIGN KEY ([OrderID]) REFERENCES [dbo].[Order] ([OrderId]) ON DELETE CASCADE ON UPDATE CASCADE; GO PRINT N'Creating dbo.FK_Restaurant_RestaurantCategory...'; GO ALTER TABLE [dbo].[Restaurant] ADD CONSTRAINT [FK_Restaurant_RestaurantCategory] FOREIGN KEY ([RestaurantCategoryId]) REFERENCES [dbo].[RestaurantCategory] ([RestaurantCategoryId]) ON DELETE NO ACTION ON UPDATE NO ACTION; GO PRINT N'Creating dbo.CK_Menu_EndDate...'; GO ALTER TABLE [dbo].[Menu] ADD CONSTRAINT [CK_Menu_EndDate] CHECK (([EndDate] > '01/01/2000') AND ([EndDate] >= [StartDate])); GO PRINT N'Creating dbo.CK_Menu_StartDate...'; GO ALTER TABLE [dbo].[Menu] ADD CONSTRAINT [CK_Menu_StartDate] CHECK ([StartDate] > '01/01/2000'); GO PRINT N'Creating AutoCreatedLocal...'; GO CREATE ROUTE [AutoCreatedLocal] AUTHORIZATION [dbo] WITH ADDRESS = N'LOCAL'; GO PRINT N'Creating dbo.Menu.EndDate.ExtProp_Menu_EndDate_Description...'; GO EXECUTE sp_addextendedproperty @name = N'ExtProp_Menu_EndDate_Description', @value = 'Date the menu expired. Must be > 01/01/2000 and must be after the StartDate', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Menu', @level2type = N'COLUMN', @level2name = N'EndDate'; GO
[ファイル] メニューの [名前を付けて SqlQuery_1.sql を保存] をクリックします。
[名前を付けてファイルを保存] ダイアログ ボックスが表示されます。
[オブジェクト名] に「SampleImportScript.sql」と入力します。
ファイルはコンピューター上の任意の場所に保存できます。 場所のメモを作成し、次のプロシージャで使用できるようにします。
[保存] をクリックします。
[ファイル] メニューの [ソリューションを閉じる] をクリックします。
次に、データベース プロジェクトを作成し、作成したスクリプトからスキーマをインポートします。
データベース プロジェクトを作成するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスが表示されます。
[インストールされたテンプレート] で、[データベース] ノードを展開し、[SQL Server] をクリックします。
注意
Visual Studio Professional を使用している場合、[インストールされたテンプレート] で、[データベース] ノードを展開し、[SQL Server] ノードを展開します。次に、[詳細設定] をクリックします。
テンプレートの一覧の [SQL Server 2008 データベース プロジェクト] をクリックします。
注意
SQL Server 2008 以外のサーバーに配置する場合、ターゲットの配置環境に対応するテンプレートをクリックしてください。
[名前] ボックスに、「WalkthroughDataGenerator」と入力し、[OK] をクリックします。
空の WalkthroughDataGenerator プロジェクトを含むソリューションが作成されます。 これは自分用のデータベース プロジェクトです。 このデータベース プロジェクトの作業中に、他のユーザーがこのデータベース プロジェクトにアクセスすることはできません。
ソリューション エクスプローラーで、[WalkthroughDataGenerator] をクリックします。
[プロジェクト] メニューの [スクリプトのインポート] をクリックします。
[SQL スクリプト ファイルのインポート] ダイアログ ボックスで、[次へ] をクリックします。
"ファイル名" フィールドに、このチュートリアルで以前に作成したスクリプトのパスとファイル名を入力します。
または、[参照] をクリックしてスクリプト ファイルを探すこともできます。
[完了] をクリックします。
データベースの構造の定義が含まれるスクリプトがインポートされます。
スキーマがインポートされたら、[完了] をクリックします。
データベース スキーマがデータベース プロジェクトにインポートされています。 データベースのオブジェクトに対応するプロジェクト項目がソリューション エクスプローラーおよびスキーマ ビューに表示されます。 次に、プロジェクトをローカル開発環境に構成、ビルド、配置します。
分離開発環境の配置
次に、プロジェクトを新しいデータベースに配置します。 この手順により、インポートされたスキーマは持つがデータを持たないデータベースが作成されます。 このデータベースは分離開発環境 (サンドボックス) であり、このデータベース内でデータベースの開発およびテストを行うことができます。
データベース プロジェクトをビルドするには
ソリューション エクスプローラーで、[WalkthroughDataGenerator] データベース プロジェクトをクリックします。
[プロジェクト] メニューの [WalkthroughDataGenerator のプロパティ] をクリックします。
プロジェクトのプロパティが表示されます。
[配置] タブをクリックします。
[配置動作] ボックスの一覧の [配置スクリプト (.sql) を作成してデータベースに配置します] をクリックします。
[ターゲット データベースの設定] の [編集] をクリックし、[接続のプロパティ] ダイアログ ボックスを表示します。
作業するデータベースの接続プロパティを設定し、[OK] をクリックします。
[ターゲット接続] ボックスに正しい接続文字列が入力されます。
ヒント
新しいデータベースは、テスト サーバー、開発サーバー、またはローカル コンピューターに作成する必要があります。 運用サーバーは使用しないでください。
[ターゲット データベース名] ボックスに「DinnerNowDataGenerator」と入力します。
[ファイル] メニューの [すべてを保存] をクリックします。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
プロジェクトをビルドするときに、エラーが発生せず .dbschema ファイルが作成できることを確認します。 ビルドの状態が [出力] ウィンドウに表示され、最後の行に "ビルド: 1 正常終了または最新の状態" と表示されます。
データベース プロジェクトを配置するには
ソリューション エクスプローラーで、[WalkthroughDataGenerator] データベース プロジェクトをクリックします。
[ビルド] メニューの [WalkthroughDataGenerator の配置] をクリックします。 ソリューション エクスプローラーでプロジェクトを右クリックし、[配置] をクリックすることもできます。
ヒント
この配置は、テスト サーバー、開発サーバー、またはローカル コンピューターに対して実行する必要があります。 運用サーバーは使用しないでください。
データベース プロジェクトが新しいデータベースに配置されます。 配置の状態が出力ウィンドウに表示され、最後の行に "配置: 1 正常終了" と表示されます。
注意
出力ウィンドウが表示されない場合は、[表示] メニューの [出力] をクリックします。
データ生成計画の作成
次に、データ生成計画を作成します。 データ生成計画には、データ入力先のテーブルと列に関する情報が含まれています。 詳細については、「方法 : データ生成計画を作成する」を参照してください。
データ生成計画を作成するには
ソリューション エクスプローラーで [データ生成計画] ノードを右クリックし、[追加] をポイントして、[データ生成計画] をクリックします。
[新しい項目の追加] ダイアログ ボックスが表示されます。
[名前] ボックスに「PartialDGenPlan.dgen」と入力します。
[追加] をクリックします。
データ生成計画が作成されます。 データ生成計画および [データ生成プレビュー] ウィンドウが表示されます。 データ生成計画ウィンドウは、上下 2 つのペインに分割されています。 上のペインには、データベース プロジェクト スキーマ内に定義されているテーブルが一覧表示されます。 下のペインには、上のペインで強調表示されているテーブルの列の詳細が表示されます。
注意
[データ生成プレビュー] ウィンドウが開いていない場合は、[データ] メニューの [データ生成] をポイントし、[データ生成のプレビュー] をクリックして開くことができます。 既定では、[データ生成プレビュー] ウィンドウは、データ生成計画ウィンドウの下部にドッキングされ、タブが付けられています。 ビューを展開するには、ウィンドウをクリックし、[ウィンドウ] メニューの [タブ付きドキュメントとしてドッキング] をクリックします。 タイトル バーを右クリックし、[タブ付きドキュメントとしてドッキング] をクリックするという方法もあります。
PartialDGenPlan.dgen デザイナーで、すべてのテーブルのチェック ボックスをオフにします。
注意
[データ生成にすべてのテーブルを含める] コマンドおよび [データ生成からすべてのテーブルを除外する] コマンドを使用して、すべてのテーブルのチェック ボックスをオフまたはオンにできます。 データ生成計画ウィンドウの任意の行を右クリックするか、[データ] メニューの [データ ジェネレーター] をポイントすると、これらのコマンドにアクセスできます。
PartialDGenPlan.dgen デザイナーで、dbo.Restaurant テーブルのチェック ボックスをオンにします。
dbo.RestaurantCategory テーブルのチェック ボックスも自動的にオンになります。 Restaurant テーブルには RestaurantCategory テーブルへの外部キーが含まれているため、Restaurant テーブルにデータを入力するには、もう一方のテーブルにデータを入力する必要があります。 詳細については、「方法 : データ生成用のテーブルを指定する」を参照してください。
[ファイル] メニューの [すべてを保存] をクリックします。
データ生成の詳細の指定
次に、列へのデータ入力方法の詳細を指定します。 詳細については、「列へのデータ生成の詳細の指定」を参照してください。
データ生成の詳細を指定するには
次の手順を実行して、生成するデータの行数を設定します。
PartialDGenPlan.dgen デザイナーで、Restaurant テーブルの行をクリックします。
[関連テーブル] 列をクリックし、ドロップダウン矢印をクリックして、RestaurantCategories テーブルを指定します。
[関連テーブルに対する比率] 列をクリックし、「10:1」と入力します。
これらの設定に基づき、生成される 1 つのカテゴリごとに 10 件のレストラン データを生成します。 詳細については、「方法 : 生成する行数を指定する」を参照してください。
次の手順を実行して、生成するデータの NULL 行数を設定します。
PartialDGenPlan.dgen デザイナーで、Restaurant テーブルの行をクリックします。
列の詳細ペインで、[説明] 列の行をクリックします。
[プロパティ] ウィンドウで、"NULL の割合" プロパティを 10 に設定します。
これらの設定に基づき、[説明] 列に生成されるデータの 10% に NULL が含まれるようになります。 [データ生成プレビュー] ウィンドウを開くと、[説明] 列にいくつかの null 値が含まれていることを確認できます。
次の手順を実行して、生成されるデータのテキストを設定します。
PartialDGenPlan.dgen デザイナーで、Restaurant テーブルの行をクリックします。
列の詳細ペインで、[名前] 列の行をクリックします。
[ジェネレーター] 列をクリックし、ドロップダウン矢印をクリックして、正規表現データ ジェネレーターを指定します。
[プロパティ] ウィンドウで、"式" プロパティを次のように設定します。
(Delicious|Golden|Family|Sweet|Dancing|Magic|Thai) (Ginger|Duck|Flower|Potato|Pumpkin|Kitchen|Grill|Onion|Corral)
[ProductName] 列に生成されるデータに 2 語の名前が含まれるようになります。 [データ生成プレビュー] ウィンドウを開くと、[名前] 列にランダムに生成されたレストランの名前が含まれていることを確認できます。 詳細については、「正規表現ジェネレーター」を参照してください。
[ファイル] メニューの [すべてを保存] をクリックします。
データ生成計画の実行
最後に、データ生成計画を実行します。 データの生成後に、別のツールを使用してデータベースにログオンし、新しいデータを確認できます。
データ生成計画を実行するには
ソリューション エクスプローラーで、[PartialDGenPlan.dgen] をダブルクリックします。
注意
データ生成計画も開いている必要があります。 計画が開いていないと、データを生成できません。
[データ] メニューの [データ ジェネレーター] をポイントし、[データの生成] をクリックします。
[データベースへの接続] ダイアログ ボックスが表示されます。
[データ生成接続情報] ボックスの一覧で、このチュートリアルで以前に配置したデータベースへの接続を指定し、[OK] をクリックします。
新しい行を挿入する前にテーブルの内容を消去するかどうか確認するメッセージが表示された場合、[はい] をクリックします。
データが生成されます。 [母集団] ウィンドウで、状態列がデータ生成の状態に更新されます。 ステータス バーには、全テーブルのデータ生成の概要が表示されます。
(省略可能) 別のツールを使用して、データベースにログオンします。 この手順で、Visual Studio Premium に組み込まれた Transact-SQL エディターを使用できます。 詳細については、Microsoft Web サイトの「データベース スクリプトと、Transact SQL エディターでのオブジェクトの編集」を参照してください。 次のクエリを実行して、新しいデータを表示します。
use DinnerNowDataGenerator select * from [dbo].[RestaurantCategory] select * from [dbo].[Restaurant]
Restaurant テーブルに、RestaurantCategory テーブルの 10 倍の行数が生成されていることを確認します。 Restaurant テーブルの [説明] 列に NULL 値が含まれていることを確認します。 Restaurant テーブルの [名前] 列に、指定した正規表現と一致するデータが含まれていることを確認します。
次の手順
通常、データベースのその他の列とテーブルに対してデータ生成を構成します。 この構成の完了後、データ生成計画を含むプロジェクトをバージョン管理にチェックインし、チームが使用できるようにします。 詳細については、「バージョン管理へのファイルの追加」を参照してください。