Initial commit
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
-- Pre-migration script to prepare database for multi-tenancy
|
||||
-- Run this BEFORE applying the AddMultiTenancy migration
|
||||
|
||||
USE PowderCoatingDb;
|
||||
GO
|
||||
|
||||
-- Step 1: Create Companies table manually (without constraints initially)
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Companies')
|
||||
BEGIN
|
||||
CREATE TABLE Companies (
|
||||
Id INT IDENTITY(1,1) PRIMARY KEY,
|
||||
CompanyName NVARCHAR(MAX) NOT NULL,
|
||||
CompanyCode NVARCHAR(450) NULL,
|
||||
PrimaryContactName NVARCHAR(MAX) NOT NULL,
|
||||
PrimaryContactEmail NVARCHAR(MAX) NOT NULL,
|
||||
Phone NVARCHAR(MAX) NULL,
|
||||
Address NVARCHAR(MAX) NULL,
|
||||
City NVARCHAR(MAX) NULL,
|
||||
State NVARCHAR(MAX) NULL,
|
||||
ZipCode NVARCHAR(MAX) NULL,
|
||||
IsActive BIT NOT NULL DEFAULT 1,
|
||||
SubscriptionStartDate DATETIME2 NOT NULL,
|
||||
SubscriptionEndDate DATETIME2 NULL,
|
||||
SubscriptionPlan NVARCHAR(MAX) NULL,
|
||||
TimeZone NVARCHAR(MAX) NULL,
|
||||
LogoPath NVARCHAR(MAX) NULL,
|
||||
Settings NVARCHAR(MAX) NULL,
|
||||
CompanyId INT NOT NULL DEFAULT 0,
|
||||
CreatedAt DATETIME2 NOT NULL,
|
||||
UpdatedAt DATETIME2 NULL,
|
||||
CreatedBy NVARCHAR(MAX) NULL,
|
||||
UpdatedBy NVARCHAR(MAX) NULL,
|
||||
IsDeleted BIT NOT NULL DEFAULT 0,
|
||||
DeletedAt DATETIME2 NULL,
|
||||
DeletedBy NVARCHAR(MAX) NULL
|
||||
);
|
||||
|
||||
-- Insert default company
|
||||
INSERT INTO Companies (
|
||||
CompanyName, CompanyCode, PrimaryContactName, PrimaryContactEmail,
|
||||
Phone, Address, City, State, ZipCode,
|
||||
IsActive, SubscriptionStartDate, SubscriptionPlan, TimeZone,
|
||||
CompanyId, CreatedAt, IsDeleted
|
||||
) VALUES (
|
||||
'Demo Company', 'DEMO', 'Admin User', 'admin@demo.com',
|
||||
'(555) 123-4567', '123 Demo Street', 'Demo City', 'CA', '90210',
|
||||
1, GETUTCDATE(), 'Enterprise', 'America/New_York',
|
||||
0, GETUTCDATE(), 0
|
||||
);
|
||||
|
||||
-- Update CompanyId to self-reference
|
||||
UPDATE Companies SET CompanyId = Id WHERE Id = 1;
|
||||
|
||||
PRINT 'Default company created with ID = 1';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT 'Companies table already exists';
|
||||
END
|
||||
GO
|
||||
|
||||
-- Step 2: Add CompanyId columns to all tables (if they don't exist)
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('AspNetUsers') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE AspNetUsers ADD CompanyId INT NULL;
|
||||
UPDATE AspNetUsers SET CompanyId = 1 WHERE CompanyId IS NULL;
|
||||
ALTER TABLE AspNetUsers ALTER COLUMN CompanyId INT NOT NULL;
|
||||
PRINT 'Added CompanyId to AspNetUsers';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('Customers') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE Customers ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to Customers';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('Jobs') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE Jobs ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to Jobs';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('JobItems') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE JobItems ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to JobItems';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('Quotes') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE Quotes ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to Quotes';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('QuoteItems') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE QuoteItems ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to QuoteItems';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('InventoryItems') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE InventoryItems ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to InventoryItems';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('InventoryTransactions') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE InventoryTransactions ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to InventoryTransactions';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('Equipment') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE Equipment ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to Equipment';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('MaintenanceRecords') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE MaintenanceRecords ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to MaintenanceRecords';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('Suppliers') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE Suppliers ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to Suppliers';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('PricingTiers') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE PricingTiers ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to PricingTiers';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('JobPhotos') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE JobPhotos ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to JobPhotos';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('JobNotes') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE JobNotes ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to JobNotes';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('CustomerNotes') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE CustomerNotes ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to CustomerNotes';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('JobStatusHistory') AND name = 'CompanyId')
|
||||
BEGIN
|
||||
ALTER TABLE JobStatusHistory ADD CompanyId INT NOT NULL DEFAULT 1;
|
||||
PRINT 'Added CompanyId to JobStatusHistory';
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('AspNetUsers') AND name = 'CompanyRole')
|
||||
BEGIN
|
||||
ALTER TABLE AspNetUsers ADD CompanyRole NVARCHAR(MAX) NULL;
|
||||
PRINT 'Added CompanyRole to AspNetUsers';
|
||||
END
|
||||
|
||||
PRINT 'Database prepared for multi-tenancy migration';
|
||||
GO
|
||||
Reference in New Issue
Block a user