diff --git a/lib/table_names/jmdict.dart b/lib/table_names/jmdict.dart index c7a4927..ad35c4d 100644 --- a/lib/table_names/jmdict.dart +++ b/lib/table_names/jmdict.dart @@ -1,4 +1,5 @@ abstract class JMdictTableNames { + static const String version = 'JMdict_Version'; static const String entry = 'JMdict_Entry'; static const String kanjiElement = 'JMdict_KanjiElement'; static const String kanjiInfo = 'JMdict_KanjiElementInfo'; @@ -20,6 +21,7 @@ abstract class JMdictTableNames { static const String senseSeeAlso = 'JMdict_SenseSeeAlso'; static Set get allTables => { + version, entry, kanjiElement, kanjiInfo, diff --git a/lib/table_names/kanjidic.dart b/lib/table_names/kanjidic.dart index 998e177..042d1b8 100644 --- a/lib/table_names/kanjidic.dart +++ b/lib/table_names/kanjidic.dart @@ -1,4 +1,5 @@ abstract class KANJIDICTableNames { + static const String version = 'KANJIDIC_Version'; static const String character = 'KANJIDIC_Character'; static const String radicalName = 'KANJIDIC_RadicalName'; static const String codepoint = 'KANJIDIC_Codepoint'; @@ -17,6 +18,7 @@ abstract class KANJIDICTableNames { static const String nanori = 'KANJIDIC_Nanori'; static Set get allTables => { + version, character, radicalName, codepoint, diff --git a/lib/table_names/radkfile.dart b/lib/table_names/radkfile.dart index cd5c224..d195d25 100644 --- a/lib/table_names/radkfile.dart +++ b/lib/table_names/radkfile.dart @@ -1,5 +1,6 @@ abstract class RADKFILETableNames { + static const String version = 'RADKFILE_Version'; static const String radkfile = 'RADKFILE'; - static Set get allTables => {radkfile}; + static Set get allTables => {version, radkfile}; } diff --git a/lib/table_names/tanos_jlpt.dart b/lib/table_names/tanos_jlpt.dart index 7c307d7..a19487e 100644 --- a/lib/table_names/tanos_jlpt.dart +++ b/lib/table_names/tanos_jlpt.dart @@ -1,5 +1,6 @@ abstract class TanosJLPTTableNames { + static const String version = 'JMdict_JLPT_Version'; static const String jlptTag = 'JMdict_JLPTTag'; - static Set get allTables => {jlptTag}; + static Set get allTables => {version, jlptTag}; } diff --git a/migrations/0001_JMDict.sql b/migrations/0001_JMDict.sql index ba9e2cc..28d448e 100644 --- a/migrations/0001_JMDict.sql +++ b/migrations/0001_JMDict.sql @@ -1,3 +1,16 @@ +CREATE TABLE "JMdict_Version" ( + "version" VARCHAR(10) PRIMARY KEY NOT NULL, + "date" DATE NOT NULL, + "hash" VARCHAR(64) NOT NULL +) WITHOUT ROWID; + +CREATE TRIGGER "JMdict_Version_SingleRow" +BEFORE INSERT ON "JMdict_Version" +WHEN (SELECT COUNT(*) FROM "JMdict_Version") >= 1 +BEGIN + SELECT RAISE(FAIL, 'Only one row allowed in JMdict_Version'); +END; + CREATE TABLE "JMdict_InfoDialect" ( "id" VARCHAR(4) PRIMARY KEY NOT NULL, "description" TEXT NOT NULL diff --git a/migrations/0004_JMDict_tanos_jlpt_tags.sql b/migrations/0004_JMDict_tanos_jlpt_tags.sql index ebb7a06..d28da40 100644 --- a/migrations/0004_JMDict_tanos_jlpt_tags.sql +++ b/migrations/0004_JMDict_tanos_jlpt_tags.sql @@ -1,3 +1,16 @@ +CREATE TABLE "JMdict_JLPT_Version" ( + "version" VARCHAR(10) PRIMARY KEY NOT NULL, + "date" DATE NOT NULL, + "hash" VARCHAR(64) NOT NULL +) WITHOUT ROWID; + +CREATE TRIGGER "JMdict_JLPT_Version_SingleRow" +BEFORE INSERT ON "JMdict_JLPT_Version" +WHEN (SELECT COUNT(*) FROM "JMdict_JLPT_Version") >= 1 +BEGIN + SELECT RAISE(FAIL, 'Only one row allowed in JMdict_JLPT_Version'); +END; + CREATE TABLE "JMdict_JLPTTag" ( "entryId" INTEGER NOT NULL, "jlptLevel" CHAR(2) NOT NULL CHECK ("jlptLevel" in ('N5', 'N4', 'N3', 'N2', 'N1')), diff --git a/migrations/0006_RADKFILE.sql b/migrations/0006_RADKFILE.sql index 74e3afb..74b4b02 100644 --- a/migrations/0006_RADKFILE.sql +++ b/migrations/0006_RADKFILE.sql @@ -1,3 +1,16 @@ +CREATE TABLE "RADKFILE_Version" ( + "version" VARCHAR(10) PRIMARY KEY NOT NULL, + "date" DATE NOT NULL, + "hash" VARCHAR(64) NOT NULL +) WITHOUT ROWID; + +CREATE TRIGGER "RADKFILE_Version_SingleRow" +BEFORE INSERT ON "RADKFILE_Version" +WHEN (SELECT COUNT(*) FROM "RADKFILE_Version") >= 1 +BEGIN + SELECT RAISE(FAIL, 'Only one row allowed in RADKFILE_Version'); +END; + CREATE TABLE "RADKFILE" ( "kanji" CHAR(1) NOT NULL, "radical" CHAR(1) NOT NULL, diff --git a/migrations/0007_KANJIDIC2.sql b/migrations/0007_KANJIDIC2.sql index 5a02ed3..0c67147 100644 --- a/migrations/0007_KANJIDIC2.sql +++ b/migrations/0007_KANJIDIC2.sql @@ -1,3 +1,16 @@ +CREATE TABLE "KANJIDIC_Version" ( + "version" VARCHAR(10) PRIMARY KEY NOT NULL, + "date" DATE NOT NULL, + "hash" VARCHAR(64) NOT NULL +) WITHOUT ROWID; + +CREATE TRIGGER "KANJIDIC_Version_SingleRow" +BEFORE INSERT ON "KANJIDIC_Version" +WHEN (SELECT COUNT(*) FROM "KANJIDIC_Version") >= 1 +BEGIN + SELECT RAISE(FAIL, 'Only one row allowed in KANJIDIC_Version'); +END; + CREATE TABLE "KANJIDIC_Character" ( "literal" CHAR(1) NOT NULL PRIMARY KEY, "grade" INTEGER CHECK ("grade" BETWEEN 1 AND 10),