mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Fix some database indexes.
This commit is contained in:
2
.idea/.idea.Aaru/.idea/contentModel.xml
generated
2
.idea/.idea.Aaru/.idea/contentModel.xml
generated
@@ -410,6 +410,8 @@
|
||||
<e p="20191207183522_AddNameCountModel.cs" t="Include" />
|
||||
<e p="20191207184342_AddRemoteStats.Designer.cs" t="Include" />
|
||||
<e p="20191207184342_AddRemoteStats.cs" t="Include" />
|
||||
<e p="20200710140320_FixIndexes.Designer.cs" t="Include" />
|
||||
<e p="20200710140320_FixIndexes.cs" t="Include" />
|
||||
<e p="AaruContextModelSnapshot.cs" t="Include" />
|
||||
</e>
|
||||
<e p="Models" t="Include">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// /***************************************************************************
|
||||
// /***************************************************************************
|
||||
// Aaru Data Preservation Suite
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -114,7 +114,23 @@ namespace Aaru.Core
|
||||
public static void UpdateMasterDatabase(bool create)
|
||||
{
|
||||
var mctx = AaruContext.Create(Settings.Settings.MasterDbPath);
|
||||
mctx.Database.Migrate();
|
||||
|
||||
if(create)
|
||||
{
|
||||
mctx.Database.EnsureCreated();
|
||||
|
||||
mctx.Database.
|
||||
ExecuteSqlRaw("CREATE TABLE IF NOT EXISTS \"__EFMigrationsHistory\" (\"MigrationId\" TEXT PRIMARY KEY, \"ProductVersion\" TEXT)");
|
||||
|
||||
foreach(string migration in mctx.Database.GetPendingMigrations())
|
||||
{
|
||||
mctx.Database.
|
||||
ExecuteSqlRaw($"INSERT INTO \"__EFMigrationsHistory\" (MigrationId, ProductVersion) VALUES ('{migration}', '0.0.0')");
|
||||
}
|
||||
}
|
||||
else
|
||||
mctx.Database.Migrate();
|
||||
|
||||
mctx.SaveChanges();
|
||||
|
||||
try
|
||||
|
||||
@@ -108,6 +108,8 @@
|
||||
<Compile Include="Migrations\20191207183522_AddNameCountModel.Designer.cs" />
|
||||
<Compile Include="Migrations\20191207184342_AddRemoteStats.cs" />
|
||||
<Compile Include="Migrations\20191207184342_AddRemoteStats.Designer.cs" />
|
||||
<Compile Include="Migrations\20200710140320_FixIndexes.cs" />
|
||||
<Compile Include="Migrations\20200710140320_FixIndexes.Designer.cs" />
|
||||
<Compile Include="Migrations\AaruContextModelSnapshot.cs" />
|
||||
<Compile Include="Models\BaseModel.cs" />
|
||||
<Compile Include="Models\BaseOperatingSystem.cs" />
|
||||
|
||||
2104
Aaru.Database/Migrations/20200710140320_FixIndexes.Designer.cs
generated
Normal file
2104
Aaru.Database/Migrations/20200710140320_FixIndexes.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
399
Aaru.Database/Migrations/20200710140320_FixIndexes.cs
Normal file
399
Aaru.Database/Migrations/20200710140320_FixIndexes.cs
Normal file
@@ -0,0 +1,399 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
namespace Aaru.Database.Migrations
|
||||
{
|
||||
public partial class FixIndexes : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropForeignKey("FK_Ata_TestedMedia_ReadCapabilitiesId", "Ata");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_BlockDescriptor_ScsiMode_ScsiModeId", "BlockDescriptor");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_DensityCode_SscSupportedMedia_SscSupportedMediaId", "DensityCode");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Ata_ATAId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Ata_ATAPIId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_FireWire_FireWireId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_MmcSd_MultiMediaCardId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Pcmcia_PCMCIAId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Scsi_SCSIId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_MmcSd_SecureDigitalId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Usb_USBId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Mmc_MmcFeatures_FeaturesId", "Mmc");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Ata_ATAId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Ata_ATAPIId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_FireWire_FireWireId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_MmcSd_MultiMediaCardId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Pcmcia_PCMCIAId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Scsi_SCSIId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_MmcSd_SecureDigitalId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Usb_USBId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Scsi_ScsiMode_ModeSenseId", "Scsi");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Scsi_Mmc_MultiMediaDeviceId", "Scsi");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Scsi_TestedMedia_ReadCapabilitiesId", "Scsi");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Scsi_Ssc_SequentialDeviceId", "Scsi");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_ScsiPage_Scsi_ScsiId", "ScsiPage");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_ScsiPage_ScsiMode_ScsiModeId", "ScsiPage");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_SscSupportedMedia_Ssc_SscId", "SscSupportedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_SscSupportedMedia_TestedSequentialMedia_TestedSequentialMediaId",
|
||||
"SscSupportedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_SupportedDensity_Ssc_SscId", "SupportedDensity");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_SupportedDensity_TestedSequentialMedia_TestedSequentialMediaId",
|
||||
"SupportedDensity");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Ata_AtaId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Chs_CHSId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Chs_CurrentCHSId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Mmc_MmcId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Scsi_ScsiId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedSequentialMedia_Ssc_SscId", "TestedSequentialMedia");
|
||||
|
||||
migrationBuilder.CreateIndex("IX_UsbVendors_ModifiedWhen", "UsbVendors", "ModifiedWhen");
|
||||
|
||||
migrationBuilder.CreateIndex("IX_UsbProducts_ModifiedWhen", "UsbProducts", "ModifiedWhen");
|
||||
|
||||
migrationBuilder.CreateIndex("IX_UsbProducts_ProductId", "UsbProducts", "ProductId");
|
||||
|
||||
migrationBuilder.CreateIndex("IX_CdOffsets_ModifiedWhen", "CdOffsets", "ModifiedWhen");
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Ata_TestedMedia_ReadCapabilitiesId", "Ata", "ReadCapabilitiesId",
|
||||
"TestedMedia", principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_BlockDescriptor_ScsiMode_ScsiModeId", "BlockDescriptor", "ScsiModeId",
|
||||
"ScsiMode", principalColumn: "Id", onDelete: ReferentialAction.Cascade);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_DensityCode_SscSupportedMedia_SscSupportedMediaId", "DensityCode",
|
||||
"SscSupportedMediaId", "SscSupportedMedia", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Ata_ATAId", "Devices", "ATAId", "Ata", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Ata_ATAPIId", "Devices", "ATAPIId", "Ata", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_FireWire_FireWireId", "Devices", "FireWireId", "FireWire",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_MmcSd_MultiMediaCardId", "Devices", "MultiMediaCardId", "MmcSd",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Pcmcia_PCMCIAId", "Devices", "PCMCIAId", "Pcmcia",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Scsi_SCSIId", "Devices", "SCSIId", "Scsi", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_MmcSd_SecureDigitalId", "Devices", "SecureDigitalId", "MmcSd",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Usb_USBId", "Devices", "USBId", "Usb", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Mmc_MmcFeatures_FeaturesId", "Mmc", "FeaturesId", "MmcFeatures",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Ata_ATAId", "Reports", "ATAId", "Ata", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Ata_ATAPIId", "Reports", "ATAPIId", "Ata", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_FireWire_FireWireId", "Reports", "FireWireId", "FireWire",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_MmcSd_MultiMediaCardId", "Reports", "MultiMediaCardId", "MmcSd",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Pcmcia_PCMCIAId", "Reports", "PCMCIAId", "Pcmcia",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Scsi_SCSIId", "Reports", "SCSIId", "Scsi", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_MmcSd_SecureDigitalId", "Reports", "SecureDigitalId", "MmcSd",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Usb_USBId", "Reports", "USBId", "Usb", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Scsi_ScsiMode_ModeSenseId", "Scsi", "ModeSenseId", "ScsiMode",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Scsi_Mmc_MultiMediaDeviceId", "Scsi", "MultiMediaDeviceId", "Mmc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Scsi_TestedMedia_ReadCapabilitiesId", "Scsi", "ReadCapabilitiesId",
|
||||
"TestedMedia", principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Scsi_Ssc_SequentialDeviceId", "Scsi", "SequentialDeviceId", "Ssc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_ScsiPage_Scsi_ScsiId", "ScsiPage", "ScsiId", "Scsi",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_ScsiPage_ScsiMode_ScsiModeId", "ScsiPage", "ScsiModeId", "ScsiMode",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_SscSupportedMedia_Ssc_SscId", "SscSupportedMedia", "SscId", "Ssc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_SscSupportedMedia_TestedSequentialMedia_TestedSequentialMediaId",
|
||||
"SscSupportedMedia", "TestedSequentialMediaId", "TestedSequentialMedia",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_SupportedDensity_Ssc_SscId", "SupportedDensity", "SscId", "Ssc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Cascade);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_SupportedDensity_TestedSequentialMedia_TestedSequentialMediaId",
|
||||
"SupportedDensity", "TestedSequentialMediaId", "TestedSequentialMedia",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Cascade);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Ata_AtaId", "TestedMedia", "AtaId", "Ata",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Chs_CHSId", "TestedMedia", "CHSId", "Chs",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Chs_CurrentCHSId", "TestedMedia", "CurrentCHSId", "Chs",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Mmc_MmcId", "TestedMedia", "MmcId", "Mmc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Cascade);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Scsi_ScsiId", "TestedMedia", "ScsiId", "Scsi",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedSequentialMedia_Ssc_SscId", "TestedSequentialMedia", "SscId",
|
||||
"Ssc", principalColumn: "Id", onDelete: ReferentialAction.SetNull);
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropForeignKey("FK_Ata_TestedMedia_ReadCapabilitiesId", "Ata");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_BlockDescriptor_ScsiMode_ScsiModeId", "BlockDescriptor");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_DensityCode_SscSupportedMedia_SscSupportedMediaId", "DensityCode");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Ata_ATAId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Ata_ATAPIId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_FireWire_FireWireId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_MmcSd_MultiMediaCardId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Pcmcia_PCMCIAId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Scsi_SCSIId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_MmcSd_SecureDigitalId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Devices_Usb_USBId", "Devices");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Mmc_MmcFeatures_FeaturesId", "Mmc");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Ata_ATAId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Ata_ATAPIId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_FireWire_FireWireId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_MmcSd_MultiMediaCardId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Pcmcia_PCMCIAId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Scsi_SCSIId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_MmcSd_SecureDigitalId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Reports_Usb_USBId", "Reports");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Scsi_ScsiMode_ModeSenseId", "Scsi");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Scsi_Mmc_MultiMediaDeviceId", "Scsi");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Scsi_TestedMedia_ReadCapabilitiesId", "Scsi");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_Scsi_Ssc_SequentialDeviceId", "Scsi");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_ScsiPage_Scsi_ScsiId", "ScsiPage");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_ScsiPage_ScsiMode_ScsiModeId", "ScsiPage");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_SscSupportedMedia_Ssc_SscId", "SscSupportedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_SscSupportedMedia_TestedSequentialMedia_TestedSequentialMediaId",
|
||||
"SscSupportedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_SupportedDensity_Ssc_SscId", "SupportedDensity");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_SupportedDensity_TestedSequentialMedia_TestedSequentialMediaId",
|
||||
"SupportedDensity");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Ata_AtaId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Chs_CHSId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Chs_CurrentCHSId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Mmc_MmcId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedMedia_Scsi_ScsiId", "TestedMedia");
|
||||
|
||||
migrationBuilder.DropForeignKey("FK_TestedSequentialMedia_Ssc_SscId", "TestedSequentialMedia");
|
||||
|
||||
migrationBuilder.DropIndex("IX_UsbVendors_ModifiedWhen", "UsbVendors");
|
||||
|
||||
migrationBuilder.DropIndex("IX_UsbProducts_ModifiedWhen", "UsbProducts");
|
||||
|
||||
migrationBuilder.DropIndex("IX_UsbProducts_ProductId", "UsbProducts");
|
||||
|
||||
migrationBuilder.DropIndex("IX_CdOffsets_ModifiedWhen", "CdOffsets");
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Ata_TestedMedia_ReadCapabilitiesId", "Ata", "ReadCapabilitiesId",
|
||||
"TestedMedia", principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_BlockDescriptor_ScsiMode_ScsiModeId", "BlockDescriptor", "ScsiModeId",
|
||||
"ScsiMode", principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_DensityCode_SscSupportedMedia_SscSupportedMediaId", "DensityCode",
|
||||
"SscSupportedMediaId", "SscSupportedMedia", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Ata_ATAId", "Devices", "ATAId", "Ata", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Ata_ATAPIId", "Devices", "ATAPIId", "Ata", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_FireWire_FireWireId", "Devices", "FireWireId", "FireWire",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_MmcSd_MultiMediaCardId", "Devices", "MultiMediaCardId", "MmcSd",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Pcmcia_PCMCIAId", "Devices", "PCMCIAId", "Pcmcia",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Scsi_SCSIId", "Devices", "SCSIId", "Scsi", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_MmcSd_SecureDigitalId", "Devices", "SecureDigitalId", "MmcSd",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Devices_Usb_USBId", "Devices", "USBId", "Usb", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Mmc_MmcFeatures_FeaturesId", "Mmc", "FeaturesId", "MmcFeatures",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Ata_ATAId", "Reports", "ATAId", "Ata", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Ata_ATAPIId", "Reports", "ATAPIId", "Ata", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_FireWire_FireWireId", "Reports", "FireWireId", "FireWire",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_MmcSd_MultiMediaCardId", "Reports", "MultiMediaCardId", "MmcSd",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Pcmcia_PCMCIAId", "Reports", "PCMCIAId", "Pcmcia",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Scsi_SCSIId", "Reports", "SCSIId", "Scsi", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_MmcSd_SecureDigitalId", "Reports", "SecureDigitalId", "MmcSd",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Reports_Usb_USBId", "Reports", "USBId", "Usb", principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Scsi_ScsiMode_ModeSenseId", "Scsi", "ModeSenseId", "ScsiMode",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Scsi_Mmc_MultiMediaDeviceId", "Scsi", "MultiMediaDeviceId", "Mmc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Scsi_TestedMedia_ReadCapabilitiesId", "Scsi", "ReadCapabilitiesId",
|
||||
"TestedMedia", principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_Scsi_Ssc_SequentialDeviceId", "Scsi", "SequentialDeviceId", "Ssc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_ScsiPage_Scsi_ScsiId", "ScsiPage", "ScsiId", "Scsi",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_ScsiPage_ScsiMode_ScsiModeId", "ScsiPage", "ScsiModeId", "ScsiMode",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_SscSupportedMedia_Ssc_SscId", "SscSupportedMedia", "SscId", "Ssc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_SscSupportedMedia_TestedSequentialMedia_TestedSequentialMediaId",
|
||||
"SscSupportedMedia", "TestedSequentialMediaId", "TestedSequentialMedia",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_SupportedDensity_Ssc_SscId", "SupportedDensity", "SscId", "Ssc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_SupportedDensity_TestedSequentialMedia_TestedSequentialMediaId",
|
||||
"SupportedDensity", "TestedSequentialMediaId", "TestedSequentialMedia",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Ata_AtaId", "TestedMedia", "AtaId", "Ata",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Chs_CHSId", "TestedMedia", "CHSId", "Chs",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Chs_CurrentCHSId", "TestedMedia", "CurrentCHSId", "Chs",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Mmc_MmcId", "TestedMedia", "MmcId", "Mmc",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedMedia_Scsi_ScsiId", "TestedMedia", "ScsiId", "Scsi",
|
||||
principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
|
||||
migrationBuilder.AddForeignKey("FK_TestedSequentialMedia_Ssc_SscId", "TestedSequentialMedia", "SscId",
|
||||
"Ssc", principalColumn: "Id", onDelete: ReferentialAction.Restrict);
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -121,8 +121,30 @@ namespace Aaru.Gui.ViewModels.Windows
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
var ctx = AaruContext.Create(Settings.Settings.LocalDbPath);
|
||||
ctx.Database.Migrate();
|
||||
AaruContext ctx;
|
||||
|
||||
try
|
||||
{
|
||||
ctx = AaruContext.Create(Settings.Settings.LocalDbPath);
|
||||
ctx.Database.Migrate();
|
||||
}
|
||||
catch(NotSupportedException)
|
||||
{
|
||||
File.Delete(Settings.Settings.LocalDbPath);
|
||||
ctx = AaruContext.Create(Settings.Settings.LocalDbPath);
|
||||
ctx.Database.EnsureCreated();
|
||||
|
||||
ctx.Database.
|
||||
ExecuteSqlRaw("CREATE TABLE IF NOT EXISTS \"__EFMigrationsHistory\" (\"MigrationId\" TEXT PRIMARY KEY, \"ProductVersion\" TEXT)");
|
||||
|
||||
foreach(string migration in ctx.Database.GetPendingMigrations())
|
||||
{
|
||||
ctx.Database.
|
||||
ExecuteSqlRaw($"INSERT INTO \"__EFMigrationsHistory\" (MigrationId, ProductVersion) VALUES ('{migration}', '0.0.0')");
|
||||
}
|
||||
|
||||
ctx.SaveChanges();
|
||||
}
|
||||
|
||||
// Remove duplicates
|
||||
foreach(var duplicate in ctx.SeenDevices.AsEnumerable().GroupBy(a => new
|
||||
@@ -131,9 +153,8 @@ namespace Aaru.Gui.ViewModels.Windows
|
||||
}).Where(a => a.Count() > 1).Distinct().Select(a => a.Key))
|
||||
ctx.RemoveRange(ctx.SeenDevices.
|
||||
Where(d => d.Manufacturer == duplicate.Manufacturer &&
|
||||
d.Model == duplicate.Model &&
|
||||
d.Revision == duplicate.Revision &&
|
||||
d.Bus == duplicate.Bus).Skip(1));
|
||||
d.Model == duplicate.Model && d.Revision == duplicate.Revision &&
|
||||
d.Bus == duplicate.Bus).Skip(1));
|
||||
|
||||
// Remove nulls
|
||||
ctx.RemoveRange(ctx.SeenDevices.Where(d => d.Manufacturer == null && d.Model == null &&
|
||||
|
||||
29
Aaru/Main.cs
29
Aaru/Main.cs
@@ -79,8 +79,30 @@ namespace Aaru
|
||||
|
||||
Settings.Settings.LoadSettings();
|
||||
|
||||
var ctx = AaruContext.Create(Settings.Settings.LocalDbPath);
|
||||
ctx.Database.Migrate();
|
||||
AaruContext ctx;
|
||||
|
||||
try
|
||||
{
|
||||
ctx = AaruContext.Create(Settings.Settings.LocalDbPath);
|
||||
ctx.Database.Migrate();
|
||||
}
|
||||
catch(NotSupportedException)
|
||||
{
|
||||
File.Delete(Settings.Settings.LocalDbPath);
|
||||
ctx = AaruContext.Create(Settings.Settings.LocalDbPath);
|
||||
ctx.Database.EnsureCreated();
|
||||
|
||||
ctx.Database.
|
||||
ExecuteSqlRaw("CREATE TABLE IF NOT EXISTS \"__EFMigrationsHistory\" (\"MigrationId\" TEXT PRIMARY KEY, \"ProductVersion\" TEXT)");
|
||||
|
||||
foreach(string migration in ctx.Database.GetPendingMigrations())
|
||||
{
|
||||
ctx.Database.
|
||||
ExecuteSqlRaw($"INSERT INTO \"__EFMigrationsHistory\" (MigrationId, ProductVersion) VALUES ('{migration}', '0.0.0')");
|
||||
}
|
||||
|
||||
ctx.SaveChanges();
|
||||
}
|
||||
|
||||
// Remove duplicates
|
||||
foreach(var duplicate in ctx.SeenDevices.AsEnumerable().GroupBy(a => new
|
||||
@@ -89,8 +111,7 @@ namespace Aaru
|
||||
}).Where(a => a.Count() > 1).Distinct().Select(a => a.Key))
|
||||
ctx.RemoveRange(ctx.SeenDevices.
|
||||
Where(d => d.Manufacturer == duplicate.Manufacturer && d.Model == duplicate.Model &&
|
||||
d.Revision == duplicate.Revision && d.Bus == duplicate.Bus).
|
||||
Skip(1));
|
||||
d.Revision == duplicate.Revision && d.Bus == duplicate.Bus).Skip(1));
|
||||
|
||||
// Remove nulls
|
||||
ctx.RemoveRange(ctx.SeenDevices.Where(d => d.Manufacturer == null && d.Model == null &&
|
||||
|
||||
Reference in New Issue
Block a user