Add idempotent SQL script for AddCompanyDefaultGlAccounts migration
Migrations are not auto-applied on startup (Program.cs:856 is commented),
so dev/prod DBs need this applied manually. Idempotent (guarded by
__EFMigrationsHistory checks) — safe to run regardless of current state.
Adds CompanyPreferences.Default{Revenue,Cogs,Inventory}AccountId + indexes + FKs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,130 @@
|
|||||||
|
BEGIN TRANSACTION;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE [CompanyPreferences] ADD [DefaultCogsAccountId] int NULL;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE [CompanyPreferences] ADD [DefaultInventoryAccountId] int NULL;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE [CompanyPreferences] ADD [DefaultRevenueAccountId] int NULL;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-06-20T13:49:14.5644507Z''
|
||||||
|
WHERE [Id] = 1;
|
||||||
|
SELECT @@ROWCOUNT');
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-06-20T13:49:14.5644514Z''
|
||||||
|
WHERE [Id] = 2;
|
||||||
|
SELECT @@ROWCOUNT');
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-06-20T13:49:14.5644515Z''
|
||||||
|
WHERE [Id] = 3;
|
||||||
|
SELECT @@ROWCOUNT');
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
CREATE INDEX [IX_CompanyPreferences_DefaultCogsAccountId] ON [CompanyPreferences] ([DefaultCogsAccountId]);
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
CREATE INDEX [IX_CompanyPreferences_DefaultInventoryAccountId] ON [CompanyPreferences] ([DefaultInventoryAccountId]);
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
CREATE INDEX [IX_CompanyPreferences_DefaultRevenueAccountId] ON [CompanyPreferences] ([DefaultRevenueAccountId]);
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE [CompanyPreferences] ADD CONSTRAINT [FK_CompanyPreferences_Accounts_DefaultCogsAccountId] FOREIGN KEY ([DefaultCogsAccountId]) REFERENCES [Accounts] ([Id]);
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE [CompanyPreferences] ADD CONSTRAINT [FK_CompanyPreferences_Accounts_DefaultInventoryAccountId] FOREIGN KEY ([DefaultInventoryAccountId]) REFERENCES [Accounts] ([Id]);
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE [CompanyPreferences] ADD CONSTRAINT [FK_CompanyPreferences_Accounts_DefaultRevenueAccountId] FOREIGN KEY ([DefaultRevenueAccountId]) REFERENCES [Accounts] ([Id]);
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT * FROM [__EFMigrationsHistory]
|
||||||
|
WHERE [MigrationId] = N'20260620134918_AddCompanyDefaultGlAccounts'
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
||||||
|
VALUES (N'20260620134918_AddCompanyDefaultGlAccounts', N'8.0.11');
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
GO
|
||||||
|
|
||||||
Reference in New Issue
Block a user