diff options
author | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-09-23 22:37:15 +0200 |
---|---|---|
committer | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-09-26 18:09:32 +0200 |
commit | 73f1933f94bcadb8c3b3f9763e6afad5f02891f4 (patch) | |
tree | 6cd028fcfe3d4a8675f00d5a4a6566d62f3f679a /src/sql | |
parent | 825bc65e0328367c26bebbf68066de3800372f84 (diff) | |
download | manaserv-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.sql | 17 | ||||
-rw-r--r-- | src/sql/mysql/updates/update_25_to_26.sql | 24 | ||||
-rw-r--r-- | src/sql/sqlite/createTables.sql | 19 | ||||
-rw-r--r-- | src/sql/sqlite/updates/update_25_to_26.sql | 22 |
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; |