You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/IoTNode/update.temp.sql

207 lines
5.6 KiB

-- Generated by SQLite Compare utility
-- The script can be used to migrate database
-- D:\Desktop\iotnode.db schema
-- to the schema of database
-- D:\1.0\ZHXY\projects\IoTNode\iotnode.db
CREATE TABLE iot_NodeCategory
(
Id TEXT NOT NULL CONSTRAINT PK_iot_NodeCategory PRIMARY KEY,
IsDeleted TEXT NULL,
Name TEXT NULL,
Number TEXT NULL,
Template TEXT NULL,
DisplayOrder INTEGER NOT NULL
);
CREATE UNIQUE INDEX IX_iot_NodeCategory_Name
ON iot_NodeCategory
(
Name
);
CREATE TABLE iot_NodeCategoryNode
(
Id TEXT NOT NULL CONSTRAINT PK_iot_NodeCategoryNode PRIMARY KEY,
IsDeleted TEXT NULL,
CategoryId TEXT NOT NULL,
NodeId TEXT NOT NULL,
CONSTRAINT FK_iot_NodeCategoryNode_iot_NodeCategory_CategoryId FOREIGN KEY (CategoryId) REFERENCES iot_NodeCategory(Id) ON DELETE CASCADE,
CONSTRAINT FK_iot_NodeCategoryNode_iot_Node_NodeId FOREIGN KEY (NodeId) REFERENCES iot_Node(Id) ON DELETE CASCADE
);
CREATE INDEX IX_iot_NodeCategoryNode_NodeId
ON iot_NodeCategoryNode
(
NodeId
);
CREATE UNIQUE INDEX IX_iot_NodeCategoryNode_CategoryId_NodeId
ON iot_NodeCategoryNode
(
CategoryId,
NodeId
);
CREATE TABLE iot_Organ
(
Id TEXT NOT NULL CONSTRAINT PK_iot_Organ PRIMARY KEY,
IsDeleted TEXT NULL,
Name TEXT NULL,
Number TEXT NOT NULL,
Image TEXT NULL
);
CREATE UNIQUE INDEX IX_iot_Organ_Number
ON iot_Organ
(
Number
);
CREATE TABLE iot_OrganNode
(
Id TEXT NOT NULL CONSTRAINT PK_iot_OrganNode PRIMARY KEY,
IsDeleted TEXT NULL,
OrganId TEXT NOT NULL,
NodeId TEXT NOT NULL,
CONSTRAINT FK_iot_OrganNode_iot_Node_NodeId FOREIGN KEY (NodeId) REFERENCES iot_Node(Id) ON DELETE CASCADE,
CONSTRAINT FK_iot_OrganNode_iot_Organ_OrganId FOREIGN KEY (OrganId) REFERENCES iot_Organ(Id) ON DELETE CASCADE
);
CREATE INDEX IX_iot_OrganNode_NodeId
ON iot_OrganNode
(
NodeId
);
CREATE UNIQUE INDEX IX_iot_OrganNode_OrganId_NodeId
ON iot_OrganNode
(
OrganId,
NodeId
);
CREATE TABLE iot_OrganScene
(
Id TEXT NOT NULL CONSTRAINT PK_iot_OrganScene PRIMARY KEY,
IsDeleted TEXT NULL,
Name TEXT NOT NULL,
Image TEXT NOT NULL,
Hidden INTEGER NOT NULL,
DisplayOrder INTEGER NOT NULL,
OrganId TEXT NOT NULL,
CONSTRAINT FK_iot_OrganScene_iot_Organ_OrganId FOREIGN KEY (OrganId) REFERENCES iot_Organ(Id) ON DELETE CASCADE
);
CREATE INDEX IX_iot_OrganScene_OrganId
ON iot_OrganScene
(
OrganId
);
CREATE TABLE iot_OrganSceneCommand
(
Id TEXT NOT NULL CONSTRAINT PK_iot_OrganSceneCommand PRIMARY KEY,
IsDeleted TEXT NULL,
OrganSceneId TEXT NOT NULL,
CommandId TEXT NOT NULL,
CONSTRAINT FK_iot_OrganSceneCommand_iot_Command_CommandId FOREIGN KEY (CommandId) REFERENCES iot_Command(Id) ON DELETE CASCADE,
CONSTRAINT FK_iot_OrganSceneCommand_iot_OrganScene_OrganSceneId FOREIGN KEY (OrganSceneId) REFERENCES iot_OrganScene(Id) ON DELETE CASCADE
);
CREATE INDEX IX_iot_OrganSceneCommand_CommandId
ON iot_OrganSceneCommand
(
CommandId
);
CREATE INDEX IX_iot_OrganSceneCommand_OrganSceneId
ON iot_OrganSceneCommand
(
OrganSceneId
);
CREATE TABLE iot_OrganSceneTigger
(
Id TEXT NOT NULL CONSTRAINT PK_iot_OrganSceneTigger PRIMARY KEY,
IsDeleted TEXT NULL,
Name TEXT NULL,
Condition TEXT NULL,
Disabled INTEGER NOT NULL,
DataId TEXT NOT NULL,
OrganSceneId TEXT NOT NULL,
CONSTRAINT FK_iot_OrganSceneTigger_iot_Data_DataId FOREIGN KEY (DataId) REFERENCES iot_Data(Id) ON DELETE CASCADE,
CONSTRAINT FK_iot_OrganSceneTigger_iot_OrganScene_OrganSceneId FOREIGN KEY (OrganSceneId) REFERENCES iot_OrganScene(Id) ON DELETE CASCADE
);
CREATE INDEX IX_iot_OrganSceneTigger_DataId
ON iot_OrganSceneTigger
(
DataId
);
CREATE INDEX IX_iot_OrganSceneTigger_OrganSceneId
ON iot_OrganSceneTigger
(
OrganSceneId
);
CREATE TABLE iot_OrganSceneTimer
(
Id TEXT NOT NULL CONSTRAINT PK_iot_OrganSceneTimer PRIMARY KEY,
IsDeleted TEXT NULL,
Name TEXT NULL,
Cron TEXT NULL,
Disabled INTEGER NOT NULL,
OrganSceneId TEXT NOT NULL,
CONSTRAINT FK_iot_OrganSceneTimer_iot_OrganScene_OrganSceneId FOREIGN KEY (OrganSceneId) REFERENCES iot_OrganScene(Id) ON DELETE CASCADE
);
CREATE INDEX IX_iot_OrganSceneTimer_OrganSceneId
ON iot_OrganSceneTimer
(
OrganSceneId
);
CREATE TABLE iot_OrganUser
(
Id TEXT NOT NULL CONSTRAINT PK_iot_OrganUser PRIMARY KEY,
IsDeleted TEXT NULL,
OrganId TEXT NOT NULL,
UserId TEXT NOT NULL,
CONSTRAINT FK_iot_OrganUser_iot_Organ_OrganId FOREIGN KEY (OrganId) REFERENCES iot_Organ(Id) ON DELETE CASCADE,
CONSTRAINT FK_iot_OrganUser_iot_User_UserId FOREIGN KEY (UserId) REFERENCES iot_User(Id) ON DELETE CASCADE
);
CREATE INDEX IX_iot_OrganUser_UserId
ON iot_OrganUser
(
UserId
);
CREATE UNIQUE INDEX IX_iot_OrganUser_OrganId_UserId
ON iot_OrganUser
(
OrganId,
UserId
);
-- Creating table iot_Scene from scratch (simple ALTER TABLE is not enough)
CREATE TABLE temp_iot_Scene_534011718
(
Id TEXT NOT NULL CONSTRAINT PK_iot_Scene PRIMARY KEY,
IsDeleted TEXT NULL,
Name TEXT NOT NULL,
Image TEXT NOT NULL,
Hidden INTEGER NOT NULL,
DisplayOrder INTEGER NOT NULL,
NodeId TEXT NULL,
CONSTRAINT FK_iot_Scene_iot_Node_NodeId FOREIGN KEY (NodeId) REFERENCES iot_Node(Id) ON DELETE CASCADE
);
-- Copying rows from original table to the new table
INSERT INTO temp_iot_Scene_534011718 (Id,IsDeleted,Name,Image,Hidden,DisplayOrder,NodeId) SELECT Id,IsDeleted,Name,Image,Hidden,DisplayOrder,NodeId FROM iot_Scene;
-- Droping the original table and renaming the temporary table
DROP TABLE iot_Scene;
ALTER TABLE temp_iot_Scene_534011718 RENAME TO iot_Scene;
-- Creating associated indexes from scratch
CREATE INDEX IX_iot_Scene_NodeId
ON iot_Scene
(
NodeId
);