c5375b661b
broke data out into its own library. may be breaking changes with existing plugins
129 lines
4.1 KiB
C#
129 lines
4.1 KiB
C#
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
namespace Data.Migrations.Sqlite
|
|
{
|
|
public partial class UpdateEFMetaToSupportNonClientMetaAndLinkedMeta : Migration
|
|
{
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.Sql(@"PRAGMA foreign_keys = 0;
|
|
|
|
CREATE TABLE sqlitestudio_temp_table AS SELECT *
|
|
FROM EFMeta;
|
|
|
|
DROP TABLE EFMeta;
|
|
|
|
CREATE TABLE EFMeta (
|
|
MetaId INTEGER NOT NULL
|
|
CONSTRAINT PK_EFMeta PRIMARY KEY AUTOINCREMENT,
|
|
Active INTEGER NOT NULL,
|
|
ClientId INTEGER,
|
|
Created TEXT NOT NULL,
|
|
Extra TEXT,
|
|
[Key] TEXT NOT NULL,
|
|
Updated TEXT NOT NULL,
|
|
Value TEXT NOT NULL,
|
|
LinkedMetaId INTEGER CONSTRAINT IX_EFMeta_LinkedMetaId REFERENCES EFMeta (MetaId) ON DELETE SET NULL,
|
|
CONSTRAINT FK_EFMeta_EFClients_ClientId FOREIGN KEY (
|
|
ClientId
|
|
)
|
|
REFERENCES EFClients (ClientId) ON DELETE CASCADE
|
|
);
|
|
|
|
INSERT INTO EFMeta (
|
|
MetaId,
|
|
Active,
|
|
ClientId,
|
|
Created,
|
|
Extra,
|
|
[Key],
|
|
Updated,
|
|
Value
|
|
)
|
|
SELECT MetaId,
|
|
Active,
|
|
ClientId,
|
|
Created,
|
|
Extra,
|
|
""Key"",
|
|
Updated,
|
|
Value
|
|
FROM sqlitestudio_temp_table;
|
|
|
|
DROP TABLE sqlitestudio_temp_table;
|
|
|
|
CREATE INDEX IX_EFMeta_ClientId ON EFMeta(
|
|
""ClientId""
|
|
);
|
|
|
|
CREATE INDEX IX_EFMeta_Key ON EFMeta (
|
|
""Key""
|
|
);
|
|
|
|
CREATE INDEX IX_EFMeta_LinkedMetaId ON EFMeta (
|
|
LinkedMetaId
|
|
);
|
|
|
|
PRAGMA foreign_keys = 1;");
|
|
}
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.Sql(@"PRAGMA foreign_keys = 0;
|
|
|
|
CREATE TABLE sqlitestudio_temp_table AS SELECT *
|
|
FROM EFMeta;
|
|
|
|
DROP TABLE EFMeta;
|
|
|
|
CREATE TABLE EFMeta (
|
|
MetaId INTEGER NOT NULL
|
|
CONSTRAINT PK_EFMeta PRIMARY KEY AUTOINCREMENT,
|
|
Active INTEGER NOT NULL,
|
|
ClientId INTEGER NOT NULL,
|
|
Created TEXT NOT NULL,
|
|
Extra TEXT,
|
|
[Key] TEXT NOT NULL,
|
|
Updated TEXT NOT NULL,
|
|
Value TEXT NOT NULL,
|
|
CONSTRAINT FK_EFMeta_EFClients_ClientId FOREIGN KEY (
|
|
ClientId
|
|
)
|
|
REFERENCES EFClients (ClientId) ON DELETE CASCADE
|
|
);
|
|
|
|
INSERT INTO EFMeta (
|
|
MetaId,
|
|
Active,
|
|
ClientId,
|
|
Created,
|
|
Extra,
|
|
[Key],
|
|
Updated,
|
|
Value
|
|
)
|
|
SELECT MetaId,
|
|
Active,
|
|
ClientId,
|
|
Created,
|
|
Extra,
|
|
""Key"",
|
|
Updated,
|
|
Value
|
|
FROM sqlitestudio_temp_table;
|
|
|
|
DROP TABLE sqlitestudio_temp_table;
|
|
|
|
CREATE INDEX IX_EFMeta_ClientId ON EFMeta(
|
|
""ClientId""
|
|
);
|
|
|
|
CREATE INDEX IX_EFMeta_Key ON EFMeta(
|
|
""Key""
|
|
);
|
|
|
|
PRAGMA foreign_keys = 1;");
|
|
}
|
|
}
|
|
}
|