summaryrefslogtreecommitdiff
path: root/src/sql
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2013-09-23 22:37:15 +0200
committerErik Schilling <ablu.erikschilling@googlemail.com>2013-09-26 18:09:32 +0200
commit73f1933f94bcadb8c3b3f9763e6afad5f02891f4 (patch)
tree6cd028fcfe3d4a8675f00d5a4a6566d62f3f679a /src/sql
parent825bc65e0328367c26bebbf68066de3800372f84 (diff)
downloadmanaserv-73f1933f94bcadb8c3b3f9763e6afad5f02891f4.tar.gz
manaserv-73f1933f94bcadb8c3b3f9763e6afad5f02891f4.tar.bz2
manaserv-73f1933f94bcadb8c3b3f9763e6afad5f02891f4.tar.xz
manaserv-73f1933f94bcadb8c3b3f9763e6afad5f02891f4.zip
Store questlog values in the database
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/mysql/createTables.sql17
-rw-r--r--src/sql/mysql/updates/update_25_to_26.sql24
-rw-r--r--src/sql/sqlite/createTables.sql19
-rw-r--r--src/sql/sqlite/updates/update_25_to_26.sql22
4 files changed, 79 insertions, 3 deletions
diff --git a/src/sql/mysql/createTables.sql b/src/sql/mysql/createTables.sql
index 763a7191..54594bd6 100644
--- a/src/sql/mysql/createTables.sql
+++ b/src/sql/mysql/createTables.sql
@@ -402,11 +402,26 @@ CREATE TABLE IF NOT EXISTS `mana_transactions` (
)
AUTO_INCREMENT=0 ;
+CREATE TABLE IF NOT EXISTS `mana_questlog` (
+ `char_id` int(10) unsigned NOT NULL,
+ `quest_id` INTEGER NOT NULL,
+ `quest_state` INTEGER NOT NULL,
+ `quest_title` TEXT NOT NULL,
+ `quest_description` TEXT NOT NULL,
+ --
+
+ PRIMARY KEY (`char_id`, `quest_id`)
+ FOREIGN KEY (`char_id`)
+ REFERENCES `mana_characters` (`id`)
+ ON DELETE CASCADE
+) ENGINE=InnoDB
+DEFAULT CHARSET=utf8 ;
+
-- initial world states and database version
INSERT INTO mana_world_states VALUES('accountserver_startup',-1,'0', NOW());
INSERT INTO mana_world_states VALUES('accountserver_version',-1,'0', NOW());
-INSERT INTO mana_world_states VALUES('database_version', -1,'25', NOW());
+INSERT INTO mana_world_states VALUES('database_version', -1,'26', NOW());
-- all known transaction codes
diff --git a/src/sql/mysql/updates/update_25_to_26.sql b/src/sql/mysql/updates/update_25_to_26.sql
new file mode 100644
index 00000000..6bed2e6b
--- /dev/null
+++ b/src/sql/mysql/updates/update_25_to_26.sql
@@ -0,0 +1,24 @@
+START TRANSACTION;
+
+CREATE TABLE IF NOT EXISTS `mana_questlog` (
+ `char_id` int(10) unsigned NOT NULL,
+ `quest_id` INTEGER NOT NULL,
+ `quest_state` INTEGER NOT NULL,
+ `quest_title` TEXT NOT NULL,
+ `quest_description` TEXT NOT NULL,
+ --
+
+ PRIMARY KEY (`char_id`, `quest_id`)
+ FOREIGN KEY (`char_id`)
+ REFERENCES `mana_characters` (`id`)
+ ON DELETE CASCADE
+) ENGINE=InnoDB
+DEFAULT CHARSET=utf8 ;
+
+-- Update database version.
+UPDATE mana_world_states
+ SET value = '26',
+ moddate = UNIX_TIMESTAMP()
+ WHERE state_name = 'database_version';
+
+COMMIT;
diff --git a/src/sql/sqlite/createTables.sql b/src/sql/sqlite/createTables.sql
index 95dc5a23..437a0546 100644
--- a/src/sql/sqlite/createTables.sql
+++ b/src/sql/sqlite/createTables.sql
@@ -110,7 +110,7 @@ CREATE TABLE mana_char_abilities
(
char_id INTEGER NOT NULL,
ability_id INTEGER NOT NULL,
- PRIMARY KEY (char_id, ability_id),
+ PRIMARY KEY (char_id, ability_id),
FOREIGN KEY (char_id) REFERENCES mana_characters(id)
);
@@ -348,6 +348,21 @@ CREATE TABLE mana_online_list
);
-----------------------------------------------------------------------------
+
+CREATE TABLE mana_questlog
+(
+ char_id INTEGER NOT NULL,
+ quest_id INTEGER NOT NULL,
+ quest_state INTEGER NOT NULL,
+ quest_title TEXT NOT NULL,
+ quest_description TEXT NOT NULL,
+ --
+ FOREIGN KEY (char_id) REFERENCES mana_characters(id)
+);
+CREATE INDEX mana_questlog_char_id ON mana_questlog ( char_id );
+CREATE INDEX mana_questlog_quest_id ON mana_questlog ( quest_id );
+
+-----------------------------------------------------------------------------
-- Views
-----------------------------------------------------------------------------
@@ -396,7 +411,7 @@ AS
INSERT INTO mana_world_states VALUES('accountserver_startup',-1,'0', strftime('%s','now'));
INSERT INTO mana_world_states VALUES('accountserver_version',-1,'0', strftime('%s','now'));
-INSERT INTO mana_world_states VALUES('database_version', -1,'25', strftime('%s','now'));
+INSERT INTO mana_world_states VALUES('database_version', -1,'26', strftime('%s','now'));
-- all known transaction codes
diff --git a/src/sql/sqlite/updates/update_25_to_26.sql b/src/sql/sqlite/updates/update_25_to_26.sql
new file mode 100644
index 00000000..fa60031e
--- /dev/null
+++ b/src/sql/sqlite/updates/update_25_to_26.sql
@@ -0,0 +1,22 @@
+BEGIN;
+
+CREATE TABLE mana_questlog
+(
+ char_id INTEGER NOT NULL,
+ quest_id INTEGER NOT NULL,
+ quest_state INTEGER NOT NULL,
+ quest_title TEXT NOT NULL,
+ quest_description TEXT NOT NULL,
+ --
+ FOREIGN KEY (char_id) REFERENCES mana_characters(id)
+);
+CREATE INDEX mana_questlog_char_id ON mana_questlog ( char_id );
+CREATE INDEX mana_questlog_quest_id ON mana_questlog ( quest_id );
+
+-- Update the database version, and set date of update
+UPDATE mana_world_states
+ SET value = '26',
+ moddate = strftime('%s','now')
+ WHERE state_name = 'database_version';
+
+END;