You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

110 lines
4.1 KiB

/*
* Initial setup of H5P tables
*/
# Keep track of h5p content entities > Pending in Tiki: Add FileId
CREATE TABLE IF NOT EXISTS tiki_h5p_contents (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
file_id INT UNSIGNED NOT NULL, # reference to the file gallery object in tiki_files table
created_at TIMESTAMP NULL,
updated_at TIMESTAMP NULL,
user_id INT UNSIGNED NOT NULL,
title VARCHAR(255) NOT NULL,
library_id INT UNSIGNED NOT NULL,
parameters LONGTEXT NOT NULL,
filtered LONGTEXT NOT NULL,
slug VARCHAR(127) NOT NULL,
embed_type VARCHAR(127) NOT NULL,
disable INT UNSIGNED NOT NULL DEFAULT 0,
content_type VARCHAR(127) NULL,
author VARCHAR(127) NULL,
license VARCHAR(7) NULL,
keywords TEXT NULL,
description TEXT NULL,
PRIMARY KEY (id),
UNIQUE KEY `fileId` (`file_id`)
) ENGINE = MyISAM;
# Keep track of content dependencies
CREATE TABLE IF NOT EXISTS tiki_h5p_contents_libraries (
content_id INT UNSIGNED NOT NULL,
library_id INT UNSIGNED NOT NULL,
dependency_type VARCHAR(31) NOT NULL,
weight SMALLINT UNSIGNED NOT NULL DEFAULT 0,
drop_css TINYINT UNSIGNED NOT NULL,
PRIMARY KEY (content_id, library_id, dependency_type)
) ENGINE = MyISAM;
# Keep track of h5p libraries
CREATE TABLE IF NOT EXISTS tiki_h5p_libraries (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
created_at TIMESTAMP NULL,
updated_at TIMESTAMP NULL,
name VARCHAR(127) NOT NULL,
title VARCHAR(255) NOT NULL,
major_version INT UNSIGNED NOT NULL,
minor_version INT UNSIGNED NOT NULL,
patch_version INT UNSIGNED NOT NULL,
runnable INT UNSIGNED NOT NULL,
restricted INT UNSIGNED NOT NULL DEFAULT 0,
fullscreen INT UNSIGNED NOT NULL,
embed_types VARCHAR(255) NOT NULL,
preloaded_js TEXT NULL,
preloaded_css TEXT NULL,
drop_library_css TEXT NULL,
semantics TEXT NOT NULL,
tutorial_url VARCHAR(1023) NOT NULL,
PRIMARY KEY (id),
KEY name_version (name, major_version, minor_version, patch_version),
KEY runnable (runnable)
) ENGINE = MyISAM;
# Keep track of h5p library dependencies
CREATE TABLE IF NOT EXISTS tiki_h5p_libraries_libraries (
library_id INT UNSIGNED NOT NULL,
required_library_id INT UNSIGNED NOT NULL,
dependency_type VARCHAR(31) NOT NULL,
PRIMARY KEY (library_id, required_library_id)
) ENGINE = MyISAM;
# Keep track of h5p library translations
CREATE TABLE IF NOT EXISTS tiki_h5p_libraries_languages (
library_id INT UNSIGNED NOT NULL,
language_code VARCHAR(31) NOT NULL,
translation TEXT NOT NULL,
PRIMARY KEY (library_id, language_code)
) ENGINE = MyISAM;
# Keep track of temporary files uploaded in editor before saving content
CREATE TABLE IF NOT EXISTS tiki_h5p_tmpfiles (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
path VARCHAR(255) NOT NULL,
created_at INT UNSIGNED NOT NULL,
PRIMARY KEY (id),
KEY created_at (created_at),
KEY path (path)
) ENGINE = MyISAM;
# Keep track of results (contents >-< users) -> Reusing Action log in Tiki?
CREATE TABLE IF NOT EXISTS tiki_h5p_results (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
content_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
score INT UNSIGNED NOT NULL,
max_score INT UNSIGNED NOT NULL,
opened INT UNSIGNED NOT NULL,
finished INT UNSIGNED NOT NULL,
time INT UNSIGNED NOT NULL,
PRIMARY KEY (id),
KEY content_user (content_id, user_id)
) ENGINE = MyISAM;
# Cache table for h5p libraries so we can reuse the existing h5p code for caching
CREATE TABLE IF NOT EXISTS tiki_h5p_libraries_cachedassets (
library_id INT UNSIGNED NOT NULL,
hash VARCHAR(64) NOT NULL,
PRIMARY KEY (library_id, hash)
) ENGINE = MyISAM;