Skip to content
This repository has been archived by the owner on Aug 3, 2024. It is now read-only.
/ ServerCommon Public archive

Add package compatibility issue schema #138

Merged
merged 1 commit into from
Feb 23, 2018

Conversation

nkolev92
Copy link
Member

@nkolev92 nkolev92 commented Feb 21, 2018

Part of NuGet/Home#6533
Parallel to NuGet/NuGet.Jobs#346.

CREATE TABLE [dbo].[PackageCompatibilityIssues] (
    [Key] [bigint] NOT NULL IDENTITY,
    [ClientIssueCode] [nvarchar](max) NOT NULL,
    [Message] [nvarchar](max) NOT NULL,
    [PackageValidationKey] [uniqueidentifier] NOT NULL,
    CONSTRAINT [PK_dbo.PackageCompatibilityIssues] PRIMARY KEY ([Key])
)
CREATE INDEX [IX_PackageValidationKey] ON [dbo].[PackageCompatibilityIssues]([PackageValidationKey])
ALTER TABLE [dbo].[PackageCompatibilityIssues] ADD CONSTRAINT [FK_dbo.PackageCompatibilityIssues_dbo.PackageValidations_PackageValidationKey] FOREIGN KEY ([PackageValidationKey]) REFERENCES [dbo].[PackageValidations] ([Key]) ON DELETE CASCADE
INSERT [dbo].[__MigrationHistory]([MigrationId], [ContextKey], [Model], [ProductVersion])
VALUES (N'201802212317262_AddPackageCompatibilityIssuesTable', N'NuGet.Services.Validation.ValidationMigrationsConfiguration',  0x1F8B0800000000000400ED1DDB6EDCB8F5BD40FF61304F6D91F5D8CE26DD35EC5D789D4D6034B1038F1D147D31640D6D0BD148B3BA38768BFDB23EF493FA0BA5EE14AF8714A5915CE7291E9187E4E1B9F390E7BFFFFECFE1CF8F6B7FF680A2D80B83A3F9DECEEE7C8602375C79C1DDD13C4D6EBFFB61FEF34F7FFCC3E1AFABF5E3EC4BD5EE75D60EF70CE2A3F97D926C0E168BD8BD476B27DE597B6E14C6E16DB2E386EB85B30A17FBBBBB3F2EF6F6160883986358B3D9E1451A24DE1AE57FE03F4FC2C0459B2475FC4FE10AF971F93BFEB2CCA1CECE9C358A378E8B8EE667E90794EC2C51F4E0B928DEF9E2F8DECA49F0ACE6B363DF73F08496C8BF9DCF9C200893FCC3C1558C9649140677CB0DFEC1F12F9F3608B7BB75FC1895CB38689A4357B4BB9FAD68D174AC40B9699C846B4D807BAF4B142DE8EE46889ED728C448FC15233B79CA569D23F2687E82A2C4BBF55C274127F78E177CF482AFF3193DF0C1891F659D2438DFE1417A3513B67F5593D0FE0EA6A19DDD57B393D44FD2081D05284D22C77F35FB9CDEF89EFB37F474197E45C15190FA3EB91ABC1EFCADF503FEE973146EF0549E2ED06DB946DC683E5BB43B2EE89E753FB253B1E6D32079FBFD1C2FC5F79D1B1FD5E442E067998411FA800214E1E5AF3E3B498222BCDBA72B94239C199E1AECD76045A00F30B41CDC6727C2E3768278E63C7877F9DAA4539DCF2E909F378BEFBD4DC1703BED26D73CC288E7B3F751B8BE087D0624BFFDF5A513DDA104AF22D4E8B40CD3C8D5581C8338EEFA9856EA2502BB30AB84F6E32DF470D170BB5406D05B6AC2FD6D182F7C0FE3FBCBFB747DB389BC20A9C6C4DA09EBDBF9EC93F3F8110577C9FDD17CFFCD5B4C4ADE235A55BF94F3B80A3CAC9E71A7244A91B69058E225A4713D2ECBB855034DB857591321D0FCABD14CAF369880D025B6152AF0EFEABFE5FDCFD063D215C647274E30E116ABC03B6F02E3023D84E6BD1B167AEF783EE69798A0D3D7FBDA58BD08BF959C58C1F9C50B9C08D36C6683A511163CEED3A79CBE72E26BD1E40F7C8A3460959370BD49930C3C54480B84ED508AA812B55A8AA892EB7045E47E75EED0D2BB0B9CA4D86BAE226AB7BAA62539A980A44D398A47DE5E57B35E4658A9A05546E871E2AC37FC05D1AD240B52346516A46AAFBBA0861D41B4D76A2EA438A2958ACEC8A63CEA026B7F7AA7CDF43F0DE5C50280590025DEDA631A4873CB1EC44984B2E51C27AC96EA6E66D0B46268684C5681015C288B929D9623504D60A0AAB0E59AEDA5724955BB6B8E9AE32E4CDC41A6B824BDFA515F0C6A39DD241BC7B456EF1DDBC5962E68F6B2A33AA8008D432390F2565731C065B55A6A9C8501208C938F77BA9238877BFB0249D6CD392C873E0BA335DEA57FA21525693933C9B44C0F5E6A4341622D4234308E6B695BDC36859884CF01A2CF88D569C961C6E734947130F964CCBE7A333B1B6C96ED3FBC6D292742D1DDF6A309A633DF028C298B5E25CDA8502FD4540A0D6366289D7FB1656221E04C9EDB750F3D9302E745166DE1F0A9C17263B87C48BD557F01EAFE8EAEF4A3368A632A5E80C7D052674EAACCEC740ACC0BD38CF0E4C64228BCC7334BD678D53BEBECE2A966C117BCD41BCFC79F4FE338EDE6AFB2E05EF801C60F27BE871BE6283BC1942D610AFCDF3E1CC54F288EF10E0E3F70493A0D5D107887E93D9535481A48627390A5DD6B4E7FC62E847413F9A7A0BE36D8BCAB89C880791E6C2D202FEB6E6A839C254A3A1B88595FA9D27CD353BA439447E94D4FDD39E628FBD1D8562E0010D1988EAEF7640F471892CBE58A341A47B505893D651F9153ACEEA89F74C632196CB9B8213B3ECFF95775512F56D0AFA30FC3C3A82509FF62BD7591F3DA360C05903504DBF292F8AE09194B44670023CF8E4DD68F64125863709166875B733165855731A4174E85716A8396CB08A311937FC7289BAD049497C3CA3A6BA6B3F156A4A97687F37C8C40A0FD67CF2052CA5885216524624B406154B91326D29502320EC1DA3E14D095B01A470A56332F3A0BC57A2FB23F870F4D95093C363DD6C98A947A2B24FE64BBCD35C38E8D1891B764DC2945F34E5E541B764799F1E23519D9621D6DB0E7EB2D312CD427D7D13A1BC8A430AE4BD7C204866AA2A7F17BDFB96BAE13774F66E84D85E30D5EA1C87FC20441EAB7F6AE7E42EB1B14553669F03508BF61A99FA7061DCD7719226835FF1086ABBAED9EBCED69F0902DA86EBE2F6F9E5DA3FA8A9AE6AFD92D2C360BBC81F9A534FBBB87C18E62EB32C951A61242B7A40E44937DF60D102DCAF5B7816D3EEC51A09C266905B7D0CCA564980FD8F9479F51E48560B6F9D29A9009D3F0336E2DEF640D799AFB18E32520B0E4FB22937BA03D11E553DAD8153EEC29EE4B1BCF7B0678661D271B18A6A132B8C54E15469B9BC4C3A1F62C4CEAB35218764F0317BB633ECA7C4D18DD2F53D7456885C0C22BBBF2DC51E573CD69BB9B58031EC33E6A1A6C55FC365E6A49B022EFA714DCE405F9F2923A7483EBE1FFE16D32B78DBFD174AFF3C07F3A4E937B6CD3D7D72296E96613B6C8F77B399002C071B0BA409B30F6B083F07412A601F6051BA019533070DFA8275743789F05A79372EFF758586F15B06EE23063B04B2C894993EC47FC0FC20BC7711CBA5EBE315C0B58900DD89E11EE3233B9282FCADFC5AE28267D6F83891DBB5C19A9D15181F3E01DCA963D3B76B3A963727362D759B10E285EF4AAD364EB884D3359FED348ED29FF8599C905BA4559FEA3E7F898E963CCD15E90B0D10E2F70BD8DE31BE09382058D9D6448AA87A5BFBC431B1464510F039441E6C349316767574F82DA5A15460F170475CB895E75AD564442E03BB6E24BCE6ACA810FC721561567592153E0BC86A050E08E4C943825770B013403B96828BB47399460D6BCE0DD85B7BA92BB1AA5104A135F3E36A57D35DEBACF6B00D257DDD0135110F8BA9EF802A28E5C06BF3933B05C06CE6B08B90CDC9189CA65D1754BB022973CF100176FFD8B63E545D12EFC64C7F41062722BD68710551AE2B77D197C2BA42EB9FE08F4AEB83934E37200B979CFA22992A99A43B87E1CFC6DC1E1E3A0685A121B76D9512C09356F3E92B29BB9973B90F0D67C60762B710E4DC40E23CAB5100793E7BCE797B769BBA8F3D015468146523A63C730F73BB403211A977524A3F7CA895D8C1AF0F206346DC01BAE61E050D74BC6C1108294613045AAF2872504995FA018D2B407672FEBB0915D031F8AD8ADB0821C6B469C505DA8DD2633806E8E2B484BEF1A39435EBC771CB4D584D675F4496A0A9D150EC8213A9B3F317DA1484E155124345395C9F6ADD3B8E1D40FCD45E78C55E5B28C8DDC614B829092ECE28916A9C376D4C694AC537591D29CA5A0E01EED9CA8BC6DFEDD4371D6023DF22E755EC5A84C8489CB94709A18B311B02E93BF4BD4E4564B5D4F86D2DBC0DB51061E583ACAA400C81EB2B120D9982C1C687548A380DB9CBE2940739EFB63E0B2615905506ECC4B8D5C52692A3142B9C57C7C30F11318A2591D244137CFDC800D23C70DC792D005AB9A3AE34DEB0E803F81C02F39EF56D2C02929C89D37A36CA0308598A055250590908222A1217AFC8CE8AA53428416E1868952352638328E511386F94DC418021CD01ABD8D4E00AA5549361C2C6BE5E5C80FAD0427C0C4BA39E25E825D682E0E7CF3BAA154F6ECB414B1D09C12D1EA0159257C2413EA0F8667403288CE761AE05BF962308B69AD1486D6CAA1490CC49A39168004B5D0B485A14858F86831403028CEDE4D4FDFED8907F1A1B9CEFE192058F674AD52AF09439FBA67BD7674182F26C9D75CAD655A2052E02BA93C4A353873EC74EAD8A259D6B49612ADDE61E1704683FAA04A2C24340FB9BA1D73B1028335E1D562037EB0251BAF17FC8B9E5201A01F72A4D2E95045868CC2BDD141BDE22C6420CCC39E6F15625F3F86DF398ACF2286EB83ABB7422B6EDFF7762802BE9C1DD009119B0489891533BEB104B9C0B0300F7AE3CD83D1593D9C504719EB6F878BA2727BF9C3E14250E2FDF093B3C9AE9B1325DFCB5F66CB4D5EEFFDE4BBA57E05F4750163E1B676828E89D623E1D56392A2BE1657E8DF7B519CBC7312E7C6C9AE0A9EACD64C33714C5510F3A8C695854DD92DAEE22155EFECFFE5E54DADF2EC9C707509F23DC6C23A0B7EE74FA428F43F0B06035ABA8EEF44BCE7594E423F5D07920328717F4E8219090D907F2686CDCFDA21C1C3F27A3212A7B0C884F8992D644E51DAF401A21EDADEB6433772371640312A007DD10A59A1810443FE0E8756897F12123FA02983923F344282B8621FD351CF82AC62CDCE87FC0A87CCAF914D42E7B7808FC0AFA04D8EC06F011F81AEAF4DC2A6BFC1A136BCD0D4DD2621F3BE6BCC99784FAD355FE2F7D1481848E4D044C630876BFA52460DA22F39435E9E6A6B0BF1A52A31B43E351C51D4978449FC3CB43C9C2AF537216DEB0C509F0277E201319461C8B8EC9525387080F1F21E94B038CFFB7240735A691075FB65A3166DB73F8D862821F170138A64F207F4C9510DA26791DCBE50C52116F98D2B31FC3E85F497A2F2266561B0C7DC32187AC2794B942B08E2F7E1B5884360DAFE8B0CD414BDDE76321ADFAED513D793203ECE81892D4D4EE72F99E871258C7139CDDB35C8785167AB6619275BCCD83883C0EA6B73991A7D2D2F80FE08875B97DE23E1D53F6AAB6D2AED9BA3B71589E1DB2648FBEA4C79940327C06D2830E1AD17E9DE8AAEC688C7C95049C9ADFC172DE5553CCB4669AF88F3D6BC0C0EB10A8E3A64BF9A4326327C654308138165634DD13D678EE17BE2C08E7A400968305E3416B2A211040AC648B5BCCBDFAF27C114BF8C97EAF2FC839E686EC9BDF4A24D715C307DD15B332C59B08A2FAAC816DB0AC04E337255579EE20476B50EA8AACA53AD43AAEAC767AA39D8BC073BFCABC80401B0AE12C2706EBD5D2EAB1796FDC99D60F5492FF0C03911D53B429C24DD5AB574A8DB351D887660CBC63ECD3F434B86C9D3A29BD4A397BFD47FD7795A658E542B792B5F75968A95AF362EF3B5E8A4A9A2C97C8651F3E0ADB284A9E5539CA0F54ED66067F99B5F04219A069F9CC0BBC57E4BF110FA7C7F776F7F3E3BF63D272E72EFCA74B003FAC22A283F6CEF75961F8656EB05DD5D3FCB2C8312C7AB56A12BB654973A796A98D25837DE5D1EC953D6BFD2AC36C58944B707642E169F062BF47834FF570EE06076FA7741263A0399978BF56A761E61A23998EDBE9A9DC65781F75B8A615E46299AFD6E50549497ECB595E5EC692F075C3C4EFACEEAA469918C5817233D38917BEF44A06DA372E9AE1B68BCBD202AAAEDBF796B54A6310B0215D3CC67AC5B3036465DBAB3695D05ACECEF04FFBD9F4964E47A79DD8AF95F49F8457D3839787EE698D521F8A9635687A033C8AC02E7259199EF275BA4330ABF3D54BF284B6ADA112DF28CAC690B17D2E921B6092058D82BAD0D2C0B5ACB860666A7C840359819916506E61C53E969B4C8028EC1CAC6C66DFCDC2F18C389BD7935DF0998A26B1DF940476FF372F4AE6B90D7A2505B636A51EA3CAF586FB91CFDA00BDAA716C42D89AB60B076EA1B746BC1A42BCF137B168AA29D68A62D91D93BE51CB823D11E0C8CC62B33985199FAD6BBC6E8C39B129DB44F9BA2EDD30879E996817E4DC6EEDA625A9F9488206031E734E7172FC7C5AD874C7C4372F6E410B3DF6D2E78DF60C15232679D120D53439A9E366DF2EE163660D30A6D460E748D4155AED9B4778A49586B5B577F5A3B8F7FD6065A67ADD900C64FA4E82079780035D4AB2EFD6C5781B118EAC9386333CE4C5D661A5227D3A7485DA364504B5EBC31510945265B4FC1ABEE914C49DE9A5D23704C5EBB34196CDA527A6C32909D21A3414CC8B638CBD5571AE694C224714D9B4EF8496036E9244BCCBBE60D63E5B0B0633C989A6603CF7C32DD2268FC094D398466BE220B31B43A15CFAE12AB33F39EA16E94E6BEC1849D2CEF472DF5600183C1240593A5D84D4A50697636FC9D32DB6EE2E796B2F4B5E7A2633BEA566E88EAD9D85ECAB2987AC504E9A7838B896EAF1A26BFE60231AB01EB012A1F970231D74CA78E07F01D3476E0F114B7A45E1C96E67059A1437AAFC5CF1F6FA34CFB168808F060D1240808FA26BCFC9D76D1A637DFB752BF7A1BB4087BC84727EFA27FBA948F3D00416A3D9DDFB744630BE71060072A76BE05890678EF6712120D5425C096D0E849908D81048D24C9568810F496D3206408ADA93062E7405CDC4B3833B2D17391861ACF478D592A1A54A49055891845A1FB31B9AF90C79E46E4C13EEBBAF45BACE8AB2AEB219F1AB0DEAB9DA2DA5B2C213FB5CABFC03A215A95E2475B0F7E3425DFB743A0FFDFB5DBC7294479355AD9D999148E9F9E2805BD40386A69AA53248757C4A69D593678157351599D4E25DCBB9546173E2AA3770EAE458ECAB741F4C71EA8DA395BC087DEE0F2C98CAA3DD78B680E0CA5CE46F1CEC5D13C26A24AC53124AC7C1E3D193A14C04C836E209E80AAB0273D341B026306679B888767CF193426D09C27C8E6D0B4024D43589D5659761D54755D3C07750D503919907A594110645328699026AE7A8F98580067879836B2FD51D5B3849781D7AB025FCD697513D2D402A86EA7AEBE0E2B1A2F9985DEBEF07D4DF514D4D860DED9D49ECCB2293FA7F48A4013E1957E5495AC8714ACE70DCEBE19071E58B4097403E9B002A4432A03834BDAEAA7BD4863DB3542D84F8C59A08AF711B0F80D688B6EDC55ECEDA04AA4ABF90592ACA268EB55E955C5E74785B841CBCBDBA12D91F1C3AFF4D203FB0D5F2E5E8B0AB68A2CC9C1633FA5DF4DA94865C1CA0BAED8A0AA31D5779797701FB356549FDB0C54A65D5E0F1A22F405C6B1ECADF61ED0B8ED6AEBCA9AEA7AA8D4DB9689174DB7498D62F7555144A63B4A1511DA5E0A9FB77D30EE93D732A4F15D2ADE23C470F4681432671FC23D5C5CA4417603ABF8EB1DCA421B3588430C33406E2B6059B7390D6EC32A7A4ACDA86AC2BC5590387889CE7126E91D37C19F5D14C7D8E29DCFF27773B02A5DDFA0D569709E269B34C14B46EB1BBF750290C55F65E3E7D5DADB733E3CDFE412C6C612CA5D42E7C12FA9E7AFEA79BFE7DCD61080C802BBE51D996C2F93ECAECCDD530DE92C0C80804AF4D5F1E84BB4DEF859E8E93C583A0FC8646E5731FA88EE1CF7A97ACF580C44BD116DB41FBEF39CBBC859C7258CA63FFE13D3F06AFDF8D3FF00D8FB7F6CD5FD0000 , N'6.1.3-40302')

public long Key { get; set; }

/// <summary>
/// The code that this error represents. The NuGet Gallery should map this error
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't really accurate right? The message would be used verbatim.

.Property(pv => pv.Key)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

modelBuilder.Entity<PackageCompatibilityIssue>()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ClientIssueCode should be required too.

@joelverhagen
Copy link
Member

Please provide the SQL that is generated using Update-Database -Script.

@@ -59,6 +59,9 @@ public class ValidationEntitiesContext : DbContext, IValidationEntitiesContext
private const string EndCertificateValidationsValidationIdIndex = "IX_EndCertificateValidations_ValidationId";
private const string EndCertificateValidationsCertificateKeyValidationIdIndex = "IX_EndCertificateValidations_EndCertificateKey_ValidationId";

private const string PackageCompatibilityIssuesTable = "PackageCompatibilityIssues";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

private [](start = 8, length = 7)

There's two empty lines here

@nkolev92 nkolev92 force-pushed the dev-nkolev92-addpackagecompatibilityschema branch 2 times, most recently from a89944c to 7880274 Compare February 21, 2018 23:21
@nkolev92 nkolev92 force-pushed the dev-nkolev92-addpackagecompatibilityschema branch from f17b5a9 to f8f13c1 Compare February 21, 2018 23:22
@nkolev92
Copy link
Member Author

🔔
@joelverhagen @loic-sharma

@nkolev92 nkolev92 changed the title WIP - Add package compatibility issue schema Add package compatibility issue schema Feb 21, 2018
Copy link
Contributor

@loic-sharma loic-sharma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@nkolev92 nkolev92 merged commit 7f0c44c into master Feb 23, 2018
@nkolev92 nkolev92 deleted the dev-nkolev92-addpackagecompatibilityschema branch February 23, 2018 22:38
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants