diff --git a/core/database.js b/core/database.js index da37b2c7..262d9ce9 100644 --- a/core/database.js +++ b/core/database.js @@ -53,10 +53,10 @@ function createUserTables() { ); dbs.user.run( - 'CREATE TABLE IF NOT EXISTS user_group (' + - ' group_id INTEGER PRIMARY KEY,' + - ' group_name VARCHAR NOT NULL,' + - ' UNIQUE(group_name)' + + 'CREATE TABLE IF NOT EXISTS user_group (' + + ' group_id INTEGER PRIMARY KEY,' + + ' group_name VARCHAR NOT NULL,' + + ' UNIQUE(group_name)' + ');' ); @@ -71,19 +71,35 @@ function createUserTables() { } function createMessageBaseTables() { + dbs.message.run( - 'CREATE TABLE IF NOT EXISTS message (' + - ' message_id INTEGER PRIMARY KEY,' + - ' area_id INTEGER NOT NULL,' + - ' message_uuid VARCHAR(36) NOT NULL,' + - ' reply_to_id INTEGER,' + - ' to_user_name VARCHAR NOT NULL,' + - ' from_user_name VARCHAR NOT NULL,' + - ' subject,' + // FTS @ message_fts - ' message,' + // FTS @ message_fts - ' modified_timestamp DATETIME NOT NULL,' + - ' UNIQUE(message_id, area_id),' + - ' UNIQUE(message_uuid)' + + 'CREATE TABLE IF NOT EXISTS message_area (' + + ' area_id INTEGER PRIMARY KEY,' + + ' area_name VARCHAR NOT NULL,' + + ' UNIQUE(area_name)' + + ');' + ); + + dbs.message.run( + 'CREATE TABLE IF NOT EXISTS message_area_group (' + + ' area_id INTEGER NOT NULL,' + + ' group_id INTEGER NOT NULL' + // FK @ user.sqlite::user_group::group_id + ');' + ); + + dbs.message.run( + 'CREATE TABLE IF NOT EXISTS message (' + + ' message_id INTEGER PRIMARY KEY,' + + ' area_id INTEGER NOT NULL,' + + ' message_uuid VARCHAR(36) NOT NULL,' + + ' reply_to_message_id INTEGER,' + + ' to_user_name VARCHAR NOT NULL,' + + ' from_user_name VARCHAR NOT NULL,' + + ' subject,' + // FTS @ message_fts + ' message,' + // FTS @ message_fts + ' modified_timestamp DATETIME NOT NULL,' + + ' UNIQUE(message_uuid)' + + ' FOREIGN KEY(area_id) REFERENCES message_area(area_id)' + ');' ); @@ -96,19 +112,27 @@ function createMessageBaseTables() { ); dbs.message.run( - 'CREATE TABLE IF NOT EXISTS message_meta (' + - ' message_id INTEGER NOT NULL,' + - ' meta_name VARCHAR NOT NULL,' + - ' meta_value VARCHAR NOT NULL,' + - ' UNIQUE(message_id, meta_name),' + - ' FOREIGN KEY(message_id) REFERENCES message(message_id) ON DELETE CASCADE' + + 'CREATE TABLE IF NOT EXISTS message_meta (' + + ' message_id INTEGER NOT NULL,' + + ' meta_name VARCHAR NOT NULL,' + + ' meta_value VARCHAR NOT NULL,' + + ' UNIQUE(message_id, meta_name),' + + ' FOREIGN KEY(message_id) REFERENCES message(message_id)' + ');' ); dbs.message.run( - 'CREATE TABLE IF NOT EXISTS message_hash_tag (' + - ' hash_tag VARCHAR NOT NULL,' + - ' message_id INTEGER NOT NULL' + + 'CREATE TABLE IF NOT EXISTS hash_tag (' + + ' hash_tag_id INTEGER PRIMARY KEY,' + + ' hash_tag_name VARCHAR NOT NULL,' + + ' UNIQUE(hash_tag_name)' + + ');' + ); + + dbs.message.run( + 'CREATE TABLE IF NOT EXISTS message_hash_tag (' + + ' hash_tag_id INTEGER NOT NULL,' + + ' message_id INTEGER NOT NULL' + ');' ); }