Fix ISO country code references in database scripts and seeder (#148)

This commit is contained in:
Aaron Po
2026-02-12 23:29:42 -05:00
committed by GitHub
parent 7129e5679e
commit 82f0d26200
6 changed files with 40 additions and 37 deletions

View File

@@ -41,7 +41,7 @@ CREATE TABLE dbo.UserAccount
Timer ROWVERSION, Timer ROWVERSION,
CONSTRAINT PK_UserAccount CONSTRAINT PK_UserAccount
PRIMARY KEY (UserAccountID), PRIMARY KEY (UserAccountID),
CONSTRAINT AK_Username CONSTRAINT AK_Username
@@ -125,16 +125,16 @@ CREATE TABLE UserVerification -- delete verification data when user account is d
UserAccountID UNIQUEIDENTIFIER NOT NULL, UserAccountID UNIQUEIDENTIFIER NOT NULL,
VerificationDateTime DATETIME NOT NULL VerificationDateTime DATETIME NOT NULL
CONSTRAINT DF_VerificationDateTime CONSTRAINT DF_VerificationDateTime
DEFAULT GETDATE(), DEFAULT GETDATE(),
Timer ROWVERSION, Timer ROWVERSION,
CONSTRAINT PK_UserVerification CONSTRAINT PK_UserVerification
PRIMARY KEY (UserVerificationID), PRIMARY KEY (UserVerificationID),
CONSTRAINT FK_UserVerification_UserAccount CONSTRAINT FK_UserVerification_UserAccount
FOREIGN KEY (UserAccountID) FOREIGN KEY (UserAccountID)
REFERENCES UserAccount(UserAccountID) REFERENCES UserAccount(UserAccountID)
ON DELETE CASCADE, ON DELETE CASCADE,
@@ -169,7 +169,7 @@ CREATE TABLE UserCredential -- delete credentials when user account is deleted
RevokedAt DATETIME NULL, RevokedAt DATETIME NULL,
Timer ROWVERSION, Timer ROWVERSION,
CONSTRAINT PK_UserCredential CONSTRAINT PK_UserCredential
PRIMARY KEY (UserCredentialID), PRIMARY KEY (UserCredentialID),
@@ -204,7 +204,7 @@ CREATE TABLE UserFollow
PRIMARY KEY (UserFollowID), PRIMARY KEY (UserFollowID),
CONSTRAINT FK_UserFollow_UserAccount CONSTRAINT FK_UserFollow_UserAccount
FOREIGN KEY (UserAccountID) FOREIGN KEY (UserAccountID)
REFERENCES UserAccount(UserAccountID), REFERENCES UserAccount(UserAccountID),
CONSTRAINT FK_UserFollow_UserAccountFollowing CONSTRAINT FK_UserFollow_UserAccountFollowing
@@ -215,7 +215,7 @@ CREATE TABLE UserFollow
CHECK (UserAccountID != FollowingID) CHECK (UserAccountID != FollowingID)
); );
CREATE NONCLUSTERED INDEX IX_UserFollow_UserAccount_FollowingID CREATE NONCLUSTERED INDEX IX_UserFollow_UserAccount_FollowingID
ON UserFollow(UserAccountID, FollowingID); ON UserFollow(UserAccountID, FollowingID);
CREATE NONCLUSTERED INDEX IX_UserFollow_FollowingID_UserAccount CREATE NONCLUSTERED INDEX IX_UserFollow_FollowingID_UserAccount
@@ -232,15 +232,15 @@ CREATE TABLE Country
CountryName NVARCHAR(100) NOT NULL, CountryName NVARCHAR(100) NOT NULL,
ISO3616_1 CHAR(2) NOT NULL, ISO3166_1 CHAR(2) NOT NULL,
Timer ROWVERSION, Timer ROWVERSION,
CONSTRAINT PK_Country CONSTRAINT PK_Country
PRIMARY KEY (CountryID), PRIMARY KEY (CountryID),
CONSTRAINT AK_Country_ISO3616_1 CONSTRAINT AK_Country_ISO3166_1
UNIQUE (ISO3616_1) UNIQUE (ISO3166_1)
); );
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
@@ -253,7 +253,7 @@ CREATE TABLE StateProvince
StateProvinceName NVARCHAR(100) NOT NULL, StateProvinceName NVARCHAR(100) NOT NULL,
ISO3616_2 CHAR(6) NOT NULL, ISO3166_2 CHAR(6) NOT NULL,
-- eg 'US-CA' for California, 'CA-ON' for Ontario -- eg 'US-CA' for California, 'CA-ON' for Ontario
CountryID UNIQUEIDENTIFIER NOT NULL, CountryID UNIQUEIDENTIFIER NOT NULL,
@@ -263,8 +263,8 @@ CREATE TABLE StateProvince
CONSTRAINT PK_StateProvince CONSTRAINT PK_StateProvince
PRIMARY KEY (StateProvinceID), PRIMARY KEY (StateProvinceID),
CONSTRAINT AK_StateProvince_ISO3616_2 CONSTRAINT AK_StateProvince_ISO3166_2
UNIQUE (ISO3616_2), UNIQUE (ISO3166_2),
CONSTRAINT FK_StateProvince_Country CONSTRAINT FK_StateProvince_Country
FOREIGN KEY (CountryID) FOREIGN KEY (CountryID)
@@ -319,7 +319,7 @@ CREATE TABLE BreweryPost -- A user cannot be deleted if they have a post
Timer ROWVERSION, Timer ROWVERSION,
CONSTRAINT PK_BreweryPost CONSTRAINT PK_BreweryPost
PRIMARY KEY (BreweryPostID), PRIMARY KEY (BreweryPostID),
CONSTRAINT FK_BreweryPost_UserAccount CONSTRAINT FK_BreweryPost_UserAccount
@@ -334,7 +334,8 @@ CREATE NONCLUSTERED INDEX IX_BreweryPost_PostedByID
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
CREATE TABLE BreweryPostLocation ( CREATE TABLE BreweryPostLocation
(
BreweryPostLocationID UNIQUEIDENTIFIER BreweryPostLocationID UNIQUEIDENTIFIER
CONSTRAINT DF_BreweryPostLocationID DEFAULT NEWID(), CONSTRAINT DF_BreweryPostLocationID DEFAULT NEWID(),
@@ -458,7 +459,7 @@ CREATE TABLE BeerPost
Timer ROWVERSION, Timer ROWVERSION,
CONSTRAINT PK_BeerPost CONSTRAINT PK_BeerPost
PRIMARY KEY (BeerPostID), PRIMARY KEY (BeerPostID),
CONSTRAINT FK_BeerPost_PostedBy CONSTRAINT FK_BeerPost_PostedBy
@@ -473,10 +474,10 @@ CREATE TABLE BeerPost
FOREIGN KEY (BrewedByID) FOREIGN KEY (BrewedByID)
REFERENCES BreweryPost(BreweryPostID), REFERENCES BreweryPost(BreweryPostID),
CONSTRAINT CHK_BeerPost_ABV CONSTRAINT CHK_BeerPost_ABV
CHECK (ABV >= 0 AND ABV <= 67), CHECK (ABV >= 0 AND ABV <= 67),
CONSTRAINT CHK_BeerPost_IBU CONSTRAINT CHK_BeerPost_IBU
CHECK (IBU >= 0 AND IBU <= 120) CHECK (IBU >= 0 AND IBU <= 120)
); );

View File

@@ -9,7 +9,7 @@ BEGIN
SELECT @CountryId = CountryID SELECT @CountryId = CountryID
FROM dbo.Country FROM dbo.Country
WHERE ISO3616_1 = @CountryCode; WHERE ISO3166_1 = @CountryCode;
RETURN @CountryId; RETURN @CountryId;
END; END;

View File

@@ -8,6 +8,6 @@ BEGIN
DECLARE @StateProvinceId UNIQUEIDENTIFIER; DECLARE @StateProvinceId UNIQUEIDENTIFIER;
SELECT @StateProvinceId = StateProvinceID SELECT @StateProvinceId = StateProvinceID
FROM dbo.StateProvince FROM dbo.StateProvince
WHERE ISO3616_2 = @StateProvinceCode; WHERE ISO3166_2 = @StateProvinceCode;
RETURN @StateProvinceId; RETURN @StateProvinceId;
END; END;

View File

@@ -1,6 +1,6 @@
CREATE OR ALTER PROCEDURE dbo.USP_CreateCountry( CREATE OR ALTER PROCEDURE dbo.USP_CreateCountry(
@CountryName NVARCHAR(100), @CountryName NVARCHAR(100),
@ISO3616_1 NVARCHAR(2) @ISO3166_1 NVARCHAR(2)
) )
AS AS
BEGIN BEGIN
@@ -9,12 +9,13 @@ BEGIN
BEGIN TRANSACTION; BEGIN TRANSACTION;
IF EXISTS (SELECT 1 IF EXISTS (SELECT 1
FROM dbo.Country FROM dbo.Country
WHERE ISO3616_1 = @ISO3616_1) WHERE ISO3166_1 = @ISO3166_1)
THROW 50001, 'Country already exists', 1; THROW 50001, 'Country already exists', 1;
INSERT INTO dbo.Country INSERT INTO dbo.Country
(CountryName, ISO3616_1) (CountryName, ISO3166_1)
VALUES (@CountryName, @ISO3616_1); VALUES
(@CountryName, @ISO3166_1);
COMMIT TRANSACTION; COMMIT TRANSACTION;
END; END;

View File

@@ -1,6 +1,6 @@
CREATE OR ALTER PROCEDURE dbo.USP_CreateStateProvince( CREATE OR ALTER PROCEDURE dbo.USP_CreateStateProvince(
@StateProvinceName NVARCHAR(100), @StateProvinceName NVARCHAR(100),
@ISO3616_2 NVARCHAR(6), @ISO3166_2 NVARCHAR(6),
@CountryCode NVARCHAR(2) @CountryCode NVARCHAR(2)
) )
AS AS
@@ -9,18 +9,19 @@ BEGIN
SET XACT_ABORT ON; SET XACT_ABORT ON;
IF EXISTS (SELECT 1 IF EXISTS (SELECT 1
FROM dbo.StateProvince FROM dbo.StateProvince
WHERE ISO3616_2 = @ISO3616_2) WHERE ISO3166_2 = @ISO3166_2)
RETURN; RETURN;
DECLARE @CountryId UNIQUEIDENTIFIER = dbo.UDF_GetCountryIdByCode(@CountryCode); DECLARE @CountryId UNIQUEIDENTIFIER = dbo.UDF_GetCountryIdByCode(@CountryCode);
IF @CountryId IS NULL IF @CountryId IS NULL
BEGIN BEGIN
THROW 50001, 'Country does not exist', 1; THROW 50001, 'Country does not exist', 1;
END END
INSERT INTO dbo.StateProvince INSERT INTO dbo.StateProvince
(StateProvinceName, ISO3616_2, CountryID) (StateProvinceName, ISO3166_2, CountryID)
VALUES (@StateProvinceName, @ISO3616_2, @CountryId); VALUES
(@StateProvinceName, @ISO3166_2, @CountryId);
END; END;

View File

@@ -277,7 +277,7 @@ internal class LocationSeeder : ISeeder
); );
command.CommandType = CommandType.StoredProcedure; command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@CountryName", countryName); command.Parameters.AddWithValue("@CountryName", countryName);
command.Parameters.AddWithValue("@ISO3616_1", countryCode); command.Parameters.AddWithValue("@ISO3166_1", countryCode);
await command.ExecuteNonQueryAsync(); await command.ExecuteNonQueryAsync();
} }
@@ -298,7 +298,7 @@ internal class LocationSeeder : ISeeder
"@StateProvinceName", "@StateProvinceName",
stateProvinceName stateProvinceName
); );
command.Parameters.AddWithValue("@ISO3616_2", stateProvinceCode); command.Parameters.AddWithValue("@ISO3166_2", stateProvinceCode);
command.Parameters.AddWithValue("@CountryCode", countryCode); command.Parameters.AddWithValue("@CountryCode", countryCode);
await command.ExecuteNonQueryAsync(); await command.ExecuteNonQueryAsync();
@@ -323,4 +323,4 @@ internal class LocationSeeder : ISeeder
await command.ExecuteNonQueryAsync(); await command.ExecuteNonQueryAsync();
} }
} }