refactor: included checkifnull function, added sql schema for the signature database
This commit is contained in:
@@ -47,8 +47,6 @@ foreach (string commandLineArg in commandLineArgs)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tosecXML = "/Users/michaelgreen/Downloads/TOSEC - DAT Pack - Complete (3764) (TOSEC-v2023-01-23)/TOSEC";
|
|
||||||
|
|
||||||
// check if configPath is valid and create it if not
|
// check if configPath is valid and create it if not
|
||||||
if (!Directory.Exists(configPath))
|
if (!Directory.Exists(configPath))
|
||||||
{
|
{
|
||||||
@@ -98,78 +96,15 @@ if (Directory.Exists(tosecXML))
|
|||||||
{
|
{
|
||||||
sql = "SELECT * FROM signatures_sources WHERE sourcemd5=@sourcemd5";
|
sql = "SELECT * FROM signatures_sources WHERE sourcemd5=@sourcemd5";
|
||||||
dbDict = new Dictionary<string, object>();
|
dbDict = new Dictionary<string, object>();
|
||||||
if (tosecObject.Name != null)
|
dbDict.Add("name", Common.ReturnValueIfNull(tosecObject.Name, ""));
|
||||||
{
|
dbDict.Add("description", Common.ReturnValueIfNull(tosecObject.Description, ""));
|
||||||
dbDict.Add("name", tosecObject.Name);
|
dbDict.Add("category", Common.ReturnValueIfNull(tosecObject.Category, ""));
|
||||||
}
|
dbDict.Add("version", Common.ReturnValueIfNull(tosecObject.Version, ""));
|
||||||
else
|
dbDict.Add("author", Common.ReturnValueIfNull(tosecObject.Author, ""));
|
||||||
{
|
dbDict.Add("email", Common.ReturnValueIfNull(tosecObject.Email, ""));
|
||||||
dbDict.Add("name", "");
|
dbDict.Add("homepage", Common.ReturnValueIfNull(tosecObject.Homepage, ""));
|
||||||
}
|
dbDict.Add("uri", Common.ReturnValueIfNull(tosecObject.Url, ""));
|
||||||
if (tosecObject.Description != null)
|
dbDict.Add("sourcetype", Common.ReturnValueIfNull(tosecObject.SourceType, ""));
|
||||||
{
|
|
||||||
dbDict.Add("description", tosecObject.Description);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("description", "");
|
|
||||||
}
|
|
||||||
if (tosecObject.Category != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("category", tosecObject.Category);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("category", "");
|
|
||||||
}
|
|
||||||
if (tosecObject.Version != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("version", tosecObject.Version);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("version", "");
|
|
||||||
}
|
|
||||||
if (tosecObject.Author != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("author", tosecObject.Author);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("author", "");
|
|
||||||
}
|
|
||||||
if (tosecObject.Email != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("email", tosecObject.Email);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("email", "");
|
|
||||||
}
|
|
||||||
if (tosecObject.Homepage != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("homepage", tosecObject.Homepage);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("homepage", "");
|
|
||||||
}
|
|
||||||
if (tosecObject.Url != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("uri", tosecObject.Url.ToString());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("uri", "");
|
|
||||||
}
|
|
||||||
if (tosecObject.SourceType != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("sourcetype", tosecObject.SourceType);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("sourcetype", "");
|
|
||||||
}
|
|
||||||
dbDict.Add("sourcemd5", tosecObject.SourceMd5);
|
dbDict.Add("sourcemd5", tosecObject.SourceMd5);
|
||||||
dbDict.Add("sourcesha1", tosecObject.SourceSHA1);
|
dbDict.Add("sourcesha1", tosecObject.SourceSHA1);
|
||||||
|
|
||||||
@@ -201,87 +136,18 @@ if (Directory.Exists(tosecXML))
|
|||||||
|
|
||||||
// set up game dictionary
|
// set up game dictionary
|
||||||
dbDict = new Dictionary<string, object>();
|
dbDict = new Dictionary<string, object>();
|
||||||
if (gameObject.Name != null)
|
dbDict.Add("name", Common.ReturnValueIfNull(gameObject.Name, ""));
|
||||||
{
|
dbDict.Add("description", Common.ReturnValueIfNull(gameObject.Description, ""));
|
||||||
dbDict.Add("name", gameObject.Name);
|
dbDict.Add("year", Common.ReturnValueIfNull(gameObject.Year, ""));
|
||||||
} else
|
dbDict.Add("publisher", Common.ReturnValueIfNull(gameObject.Publisher, ""));
|
||||||
{
|
|
||||||
dbDict.Add("name", "");
|
|
||||||
}
|
|
||||||
if (gameObject.Description != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("description", gameObject.Description);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("description", "");
|
|
||||||
}
|
|
||||||
if (gameObject.Year != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("year", gameObject.Year);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("year", "");
|
|
||||||
}
|
|
||||||
if (gameObject.Publisher != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("publisher", gameObject.Publisher);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("publisher", "");
|
|
||||||
}
|
|
||||||
dbDict.Add("demo", (int)gameObject.Demo);
|
dbDict.Add("demo", (int)gameObject.Demo);
|
||||||
if (gameObject.System != null)
|
dbDict.Add("system", Common.ReturnValueIfNull(gameObject.System, ""));
|
||||||
{
|
dbDict.Add("platform", Common.ReturnValueIfNull(gameObject.System, ""));
|
||||||
dbDict.Add("system", gameObject.System);
|
dbDict.Add("systemvariant", Common.ReturnValueIfNull(gameObject.SystemVariant, ""));
|
||||||
dbDict.Add("platform", gameObject.System);
|
dbDict.Add("video", Common.ReturnValueIfNull(gameObject.Video, ""));
|
||||||
}
|
dbDict.Add("country", Common.ReturnValueIfNull(gameObject.Country, ""));
|
||||||
else
|
dbDict.Add("language", Common.ReturnValueIfNull(gameObject.Language, ""));
|
||||||
{
|
dbDict.Add("copyright", Common.ReturnValueIfNull(gameObject.Copyright, ""));
|
||||||
dbDict.Add("system", "");
|
|
||||||
}
|
|
||||||
if (gameObject.SystemVariant != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("systemvariant", gameObject.SystemVariant);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("systemvariant", "");
|
|
||||||
}
|
|
||||||
if (gameObject.Video != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("video", gameObject.Video);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("video", "");
|
|
||||||
}
|
|
||||||
if (gameObject.Country != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("country", gameObject.Country);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("country", "");
|
|
||||||
}
|
|
||||||
if (gameObject.Language != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("language", gameObject.Language);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("language", "");
|
|
||||||
}
|
|
||||||
if (gameObject.Copyright != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("copyright", gameObject.Copyright);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("copyright", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
// store platform
|
// store platform
|
||||||
int gameSystem = 0;
|
int gameSystem = 0;
|
||||||
@@ -354,46 +220,13 @@ if (Directory.Exists(tosecXML))
|
|||||||
sql = "SELECT * FROM signatures_roms WHERE gameid=@gameid AND md5=@md5";
|
sql = "SELECT * FROM signatures_roms WHERE gameid=@gameid AND md5=@md5";
|
||||||
dbDict = new Dictionary<string, object>();
|
dbDict = new Dictionary<string, object>();
|
||||||
dbDict.Add("gameid", gameId);
|
dbDict.Add("gameid", gameId);
|
||||||
if (romObject.Name != null)
|
dbDict.Add("name", Common.ReturnValueIfNull(romObject.Name, ""));
|
||||||
{
|
dbDict.Add("size", Common.ReturnValueIfNull(romObject.Size, ""));
|
||||||
dbDict.Add("name", romObject.Name);
|
dbDict.Add("crc", Common.ReturnValueIfNull(romObject.Crc, ""));
|
||||||
} else
|
|
||||||
{
|
|
||||||
dbDict.Add("name", "");
|
|
||||||
}
|
|
||||||
if (romObject.Size != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("size", romObject.Size);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("size", 0);
|
|
||||||
}
|
|
||||||
if (romObject.Crc != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("crc", romObject.Crc);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("name", "");
|
|
||||||
}
|
|
||||||
dbDict.Add("md5", romObject.Md5);
|
dbDict.Add("md5", romObject.Md5);
|
||||||
if (romObject.Sha1 != null)
|
dbDict.Add("sha1", Common.ReturnValueIfNull(romObject.Sha1, ""));
|
||||||
{
|
dbDict.Add("developmentstatus", Common.ReturnValueIfNull(romObject.DevelopmentStatus, ""));
|
||||||
dbDict.Add("sha1", romObject.Sha1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("sha1", "");
|
|
||||||
}
|
|
||||||
if (romObject.DevelopmentStatus != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("developmentstatus", romObject.DevelopmentStatus);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("developmentstatus", "");
|
|
||||||
}
|
|
||||||
if (romObject.flags != null)
|
if (romObject.flags != null)
|
||||||
{
|
{
|
||||||
if (romObject.flags.Count > 0)
|
if (romObject.flags.Count > 0)
|
||||||
@@ -401,30 +234,16 @@ if (Directory.Exists(tosecXML))
|
|||||||
dbDict.Add("flags", Newtonsoft.Json.JsonConvert.SerializeObject(romObject.flags));
|
dbDict.Add("flags", Newtonsoft.Json.JsonConvert.SerializeObject(romObject.flags));
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
dbDict.Add("flags", "{ }");
|
dbDict.Add("flags", "[ ]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dbDict.Add("flags", "{ }");
|
dbDict.Add("flags", "[ ]");
|
||||||
}
|
}
|
||||||
dbDict.Add("romtype", (int)romObject.RomType);
|
dbDict.Add("romtype", (int)romObject.RomType);
|
||||||
if (romObject.RomTypeMedia != null)
|
dbDict.Add("romtypemedia", Common.ReturnValueIfNull(romObject.RomTypeMedia, ""));
|
||||||
{
|
dbDict.Add("medialabel", Common.ReturnValueIfNull(romObject.MediaLabel, ""));
|
||||||
dbDict.Add("romtypemedia", romObject.RomTypeMedia);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("romtypemedia", "");
|
|
||||||
}
|
|
||||||
if (romObject.MediaLabel != null)
|
|
||||||
{
|
|
||||||
dbDict.Add("medialabel", romObject.MediaLabel);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dbDict.Add("medialabel", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
sigDB = db.ExecuteCMD(sql, dbDict);
|
sigDB = db.ExecuteCMD(sql, dbDict);
|
||||||
if (sigDB.Rows.Count == 0)
|
if (sigDB.Rows.Count == 0)
|
||||||
|
24
gaseous-tools/Common.cs
Normal file
24
gaseous-tools/Common.cs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
using System;
|
||||||
|
namespace gaseous_tools
|
||||||
|
{
|
||||||
|
public class Common
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Returns IfNullValue if the ObjectToCheck is null
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ObjectToCheck">Any nullable object to check for null</param>
|
||||||
|
/// <param name="IfNullValue">Any object to return if ObjectToCheck is null</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
static public object ReturnValueIfNull(object? ObjectToCheck, object IfNullValue)
|
||||||
|
{
|
||||||
|
if (ObjectToCheck == null)
|
||||||
|
{
|
||||||
|
return IfNullValue;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
return ObjectToCheck;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
144
gaseous-tools/Database/MySQL/gaseous.sql
Normal file
144
gaseous-tools/Database/MySQL/gaseous.sql
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.0.32, for macos13.0 (arm64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: gaseous
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.0.32
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `signatures_games`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `signatures_games`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!50503 SET character_set_client = utf8mb4 */;
|
||||||
|
CREATE TABLE `signatures_games` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(255) DEFAULT NULL,
|
||||||
|
`description` varchar(255) DEFAULT NULL,
|
||||||
|
`year` varchar(15) DEFAULT NULL,
|
||||||
|
`publisherid` int DEFAULT NULL,
|
||||||
|
`demo` int DEFAULT NULL,
|
||||||
|
`systemid` int DEFAULT NULL,
|
||||||
|
`systemvariant` varchar(100) DEFAULT NULL,
|
||||||
|
`video` varchar(10) DEFAULT NULL,
|
||||||
|
`country` varchar(5) DEFAULT NULL,
|
||||||
|
`language` varchar(5) DEFAULT NULL,
|
||||||
|
`copyright` varchar(15) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `id_UNIQUE` (`id`),
|
||||||
|
KEY `publisher_idx` (`publisherid`),
|
||||||
|
KEY `system_idx` (`systemid`),
|
||||||
|
KEY `ingest_idx` (`name`,`year`,`publisherid`,`systemid`,`country`,`language`) USING BTREE,
|
||||||
|
CONSTRAINT `publisher` FOREIGN KEY (`publisherid`) REFERENCES `signatures_publishers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `system` FOREIGN KEY (`systemid`) REFERENCES `signatures_platforms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1134279 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `signatures_platforms`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `signatures_platforms`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!50503 SET character_set_client = utf8mb4 */;
|
||||||
|
CREATE TABLE `signatures_platforms` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`platform` varchar(100) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `idsignatures_platforms_UNIQUE` (`id`),
|
||||||
|
KEY `platforms_idx` (`platform`,`id`) USING BTREE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1091 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `signatures_publishers`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `signatures_publishers`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!50503 SET character_set_client = utf8mb4 */;
|
||||||
|
CREATE TABLE `signatures_publishers` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`publisher` varchar(100) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `id_UNIQUE` (`id`),
|
||||||
|
KEY `publisher_idx` (`publisher`,`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=71898 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `signatures_roms`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `signatures_roms`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!50503 SET character_set_client = utf8mb4 */;
|
||||||
|
CREATE TABLE `signatures_roms` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`gameid` int DEFAULT NULL,
|
||||||
|
`name` varchar(255) DEFAULT NULL,
|
||||||
|
`size` bigint DEFAULT NULL,
|
||||||
|
`crc` varchar(20) DEFAULT NULL,
|
||||||
|
`md5` varchar(100) DEFAULT NULL,
|
||||||
|
`sha1` varchar(100) DEFAULT NULL,
|
||||||
|
`developmentstatus` varchar(100) DEFAULT NULL,
|
||||||
|
`flags` json DEFAULT NULL,
|
||||||
|
`romtype` int DEFAULT NULL,
|
||||||
|
`romtypemedia` varchar(100) DEFAULT NULL,
|
||||||
|
`medialabel` varchar(100) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `id_UNIQUE` (`id`,`gameid`) USING BTREE,
|
||||||
|
KEY `gameid_idx` (`gameid`),
|
||||||
|
KEY `flags_idx` ((cast(`flags` as char(255) array))),
|
||||||
|
CONSTRAINT `gameid` FOREIGN KEY (`gameid`) REFERENCES `signatures_games` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=2587448 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `signatures_sources`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `signatures_sources`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!50503 SET character_set_client = utf8mb4 */;
|
||||||
|
CREATE TABLE `signatures_sources` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(255) DEFAULT NULL,
|
||||||
|
`description` varchar(255) DEFAULT NULL,
|
||||||
|
`category` varchar(45) DEFAULT NULL,
|
||||||
|
`version` varchar(45) DEFAULT NULL,
|
||||||
|
`author` varchar(255) DEFAULT NULL,
|
||||||
|
`email` varchar(45) DEFAULT NULL,
|
||||||
|
`homepage` varchar(45) DEFAULT NULL,
|
||||||
|
`url` varchar(45) DEFAULT NULL,
|
||||||
|
`sourcetype` varchar(45) DEFAULT NULL,
|
||||||
|
`sourcemd5` varchar(45) DEFAULT NULL,
|
||||||
|
`sourcesha1` varchar(45) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `id_UNIQUE` (`id`),
|
||||||
|
KEY `sourcemd5_idx` (`sourcemd5`,`id`) USING BTREE,
|
||||||
|
KEY `sourcesha1_idx` (`sourcesha1`,`id`) USING BTREE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=5968 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
-- Dump completed on 2023-02-26 23:40:56
|
@@ -10,4 +10,12 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MySql.Data" Version="8.0.32" />
|
<PackageReference Include="MySql.Data" Version="8.0.32" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="Database\" />
|
||||||
|
<None Remove="Database\MySQL\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Database\" />
|
||||||
|
<Folder Include="Database\MySQL\" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
Reference in New Issue
Block a user