summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/account-server/dalstorage.cpp2
-rw-r--r--src/account-server/dalstoragesql.hpp5
-rw-r--r--src/sql/mysql/createTables.sql20
-rw-r--r--src/sql/sqlite/createTables.sql15
-rw-r--r--src/sql/sqlite/updates/update_5_to_6.sql20
5 files changed, 59 insertions, 3 deletions
diff --git a/src/account-server/dalstorage.cpp b/src/account-server/dalstorage.cpp
index 7e27ae50..4628eca5 100644
--- a/src/account-server/dalstorage.cpp
+++ b/src/account-server/dalstorage.cpp
@@ -41,7 +41,7 @@
// defines the supported db version
#define DB_VERSION_PARAMETER "database_version"
-#define SUPPORTED_DB_VERSION "5"
+#define SUPPORTED_DB_VERSION "6"
/**
diff --git a/src/account-server/dalstoragesql.hpp b/src/account-server/dalstoragesql.hpp
index 1661baa6..cab3aea9 100644
--- a/src/account-server/dalstoragesql.hpp
+++ b/src/account-server/dalstoragesql.hpp
@@ -76,6 +76,11 @@ static const char *CHARACTERS_TBL_NAME = "tmw_characters";
static const char *CHAR_SKILLS_TBL_NAME = "tmw_char_skills";
/**
+ * TABLE: tmw_char_status_effects.
+ */
+static const char *CHAR_STATUS_EFFECTS_TBL_NAME = "tmw_char_status_effects";
+
+/**
* TABLE: tmw_inventories.
*/
static const char *INVENTORIES_TBL_NAME("tmw_inventories");
diff --git a/src/sql/mysql/createTables.sql b/src/sql/mysql/createTables.sql
index 306e7c0a..9d6a7385 100644
--- a/src/sql/mysql/createTables.sql
+++ b/src/sql/mysql/createTables.sql
@@ -73,6 +73,24 @@ CREATE TABLE IF NOT EXISTS `tmw_char_skills` (
DEFAULT CHARSET=utf8;
--
+-- table: `tmw_char_status_effects`
+--
+CREATE TABLE IF NOT EXISTS `tmw_char_status_effects` (
+ `char_id` int(10) unsigned NOT NULL,
+ `status_id` smallint(5) unsigned NOT NULL,
+ `status_time` int(10) signed NOT NULL,
+ --
+ PRIMARY KEY (`char_id`, `status_id`),
+ FOREIGN KEY (`char_id`)
+ REFERENCES `tmw_characters` (`id`)
+ ON DELETE CASCADE
+) ENGING=InnoDB
+DEFAULT CHARSET=utf8;
+
+
+
+
+--
-- table: `tmw_items`
--
CREATE TABLE IF NOT EXISTS `tmw_items` (
@@ -344,4 +362,4 @@ CREATE TABLE IF NOT EXISTS `tmw_transactions` (
`time` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
-AUTO_INCREMENT=0 ; \ No newline at end of file
+AUTO_INCREMENT=0 ;
diff --git a/src/sql/sqlite/createTables.sql b/src/sql/sqlite/createTables.sql
index 5cd439d2..d71858fa 100644
--- a/src/sql/sqlite/createTables.sql
+++ b/src/sql/sqlite/createTables.sql
@@ -84,6 +84,19 @@ CREATE INDEX tmw_char_skills_char ON tmw_char_skills ( char_id );
-----------------------------------------------------------------------------
+CREATE TABLE tmw_char_status_effects
+(
+ char_id INTEGER NOT NULL,
+ status_id INTEGER NOT NULL,
+ status_time INTEGER NOT NULL,
+ --
+ FOREIGN KEY (char_id) REFERENCES tmw_characters(id)
+);
+
+CREATE INDEX tmw_char_status_char on tmw_char_status_effects ( char_id );
+
+-----------------------------------------------------------------------------
+
CREATE TABLE tmw_items
(
id INTEGER PRIMARY KEY,
@@ -348,7 +361,7 @@ AS
INSERT INTO tmw_world_states VALUES('accountserver_startup',NULL,NULL, strftime('%s','now'));
INSERT INTO tmw_world_states VALUES('accountserver_version',NULL,NULL, strftime('%s','now'));
-INSERT INTO tmw_world_states VALUES('database_version', NULL,'5', strftime('%s','now'));
+INSERT INTO tmw_world_states VALUES('database_version', NULL,'6', strftime('%s','now'));
-- all known transaction codes
diff --git a/src/sql/sqlite/updates/update_5_to_6.sql b/src/sql/sqlite/updates/update_5_to_6.sql
new file mode 100644
index 00000000..8a1e552c
--- /dev/null
+++ b/src/sql/sqlite/updates/update_5_to_6.sql
@@ -0,0 +1,20 @@
+
+-- create table tmw_char_status_effects
+
+CREATE TABLE tmw_char_status_effects
+(
+ char_id INTEGER NOT NULL,
+ status_id INTEGER NOT NULL,
+ status_time INTEGER NOT NULL,
+ --
+ FOREIGN KEY (char_id) REFERENCES tmw_characters(id)
+);
+
+CREATE INDEX tmw_char_status_char on tmw_char_status_effects ( char_id );
+
+-- update the database version, and set date of update
+UPDATE tmw_world_states
+ SET value = '6',
+ moddate = strftime('%s','now')
+ WHERE state_name = 'database_version';
+