ええ、私はこれをしました。それを調査する中で、推奨されていない多くの場所を見てきました.1つはPro ASP.Net 4.0です。これは、スクリプトの実装がフレームワークのバージョンごとに異なる可能性があることを意味していると思います。それは良いアドバイスかもしれません...それとも熱心すぎるかもしれません。
RedGate Compare を使い終わったときに、構造とデータの両方を比較しましたが、結果に違いは見られませんでした...だから、問題なく動作すると思います... YMMV.
これを行うために私がしたことは、新しいデータベースを作成し、その上で aspnet_regsql を実行することでした。次に、VS2010 で新しいデータベース プロジェクトを作成し、そのデータベースをインポートしました。次に、新しいプロジェクトのスキーマ オブジェクト ディレクトリにあるすべてのファイルをコピーして、既存のデータベース プロジェクトのスキーマ オブジェクト ディレクトリにドロップしました。古いプロジェクトを開き、プロジェクト メニューからすべてのファイルを表示してから、すべての新しいファイルをプロジェクトに含めました。
また、新しいプロジェクトの Database.sqlpermissions ファイルからすべてのデータベース権限をコピーする必要があります。
最後に、これをデプロイ後のスクリプトに追加する必要があります。
-- Add 6 rows to [dbo].[aspnet_SchemaVersions]
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'common') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'common', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'health monitoring') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'health monitoring', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'membership') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'membership', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'personalization') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'personalization', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'profile') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'profile', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'role manager') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'role manager', N'1', 1)
END