DDL sql execution error on plugins "Game" after upgrade to 3.8.3+

DDL sql execution error on plugins "Game" after upgrade to 3.8.3+

by Greg Maron -
Number of replies: 1
I believe this issue occurred during the upgrade from 3.4.7 to 3.8.3, but I cannot be sure. My site has several plugins, some of which have been modified by a developer (not 100% sure why, either). I was able to update to 3.8.3 and the site is working fine, but I had to jettison the "Game" plugin for now while I sort this out. Moving the game plugin back from moodle.bak to moodle caused my 3.8.3 update to fail, but when I pulled it out everything worked fine. Introducing the plugin again, even directly from the Moodle plugins directory, cause a MySQL error to come up.

Here is what I got:

mod_game

DDL sql execution error


More information about this error


×Debug info: Table 'mdl_game' already exists

CREATE TABLE mdl_game (

id BIGINT(10) NOT NULL auto_increment,

name VARCHAR(255) COLLATE utf8mb4_unicode_ci,

course BIGINT(10),

intro LONGTEXT COLLATE utf8mb4_unicode_ci,

introformat SMALLINT(4) NOT NULL DEFAULT 0,

sourcemodule VARCHAR(50) COLLATE utf8mb4_unicode_ci,

timeopen BIGINT(10) DEFAULT 0,

timeclose BIGINT(10) NOT NULL DEFAULT 0,

quizid BIGINT(10),

glossaryid BIGINT(10),

glossarycategoryid BIGINT(10),

questioncategoryid BIGINT(10),

bookid BIGINT(10),

gamekind VARCHAR(20) COLLATE utf8mb4_unicode_ci,

param1 BIGINT(10),

param2 BIGINT(10),

param3 BIGINT(10),

param4 BIGINT(10),

param5 BIGINT(10),

param6 BIGINT(10),

param7 BIGINT(10),

param8 BIGINT(10),

param9 LONGTEXT COLLATE utf8mb4_unicode_ci,

param10 BIGINT(10),

shuffle TINYINT(2) DEFAULT 1,

timemodified BIGINT(10),

gameinputid BIGINT(10),

toptext LONGTEXT COLLATE utf8mb4_unicode_ci,

bottomtext LONGTEXT COLLATE utf8mb4_unicode_ci,

grademethod TINYINT(2),

grade BIGINT(10),

decimalpoints TINYINT(2),

popup SMALLINT(4),

review BIGINT(10),

attempts BIGINT(10),

glossaryid2 BIGINT(10),

glossarycategoryid2 BIGINT(10),

language VARCHAR(10) COLLATE utf8mb4_unicode_ci,

subcategories TINYINT(1),

maxattempts SMALLINT(3),

userlanguage VARCHAR(100) COLLATE utf8mb4_unicode_ci,

disablesummarize TINYINT(1) NOT NULL DEFAULT 0,

glossaryonlyapproved TINYINT(1) DEFAULT 0,

completionattemptsexhausted TINYINT(1) DEFAULT 0,

completionpass TINYINT(1) DEFAULT 0,

highscore TINYINT(2) DEFAULT 0,

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game'

;

CREATE TABLE mdl_game_attempts (

id BIGINT(10) NOT NULL auto_increment,

gameid BIGINT(10),

userid BIGINT(10),

timestart BIGINT(10) NOT NULL,

timefinish BIGINT(10) NOT NULL,

timelastattempt BIGINT(10),

preview TINYINT(1),

attempt BIGINT(10),

score DOUBLE,

attempts BIGINT(10),

language VARCHAR(10) COLLATE utf8mb4_unicode_ci,

CONSTRAINT PRIMARY KEY (id)

, KEY mdl_gameatte_gamusetim2_ix (gameid, userid, timefinish)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_attempts'

;

CREATE TABLE mdl_game_grades (

id BIGINT(10) NOT NULL auto_increment,

gameid BIGINT(10),

userid BIGINT(10),

score DOUBLE NOT NULL,

timemodified BIGINT(10) NOT NULL,

CONSTRAINT PRIMARY KEY (id)

, KEY mdl_gamegrad_use2_ix (userid)

, KEY mdl_gamegrad_gam2_ix (gameid)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_grades'

;

CREATE TABLE mdl_game_queries (

id BIGINT(10) NOT NULL auto_increment,

attemptid BIGINT(10),

gamekind VARCHAR(255) COLLATE utf8mb4_unicode_ci,

gameid BIGINT(10),

userid BIGINT(10),

sourcemodule VARCHAR(20) COLLATE utf8mb4_unicode_ci,

questionid BIGINT(10),

glossaryentryid BIGINT(10),

questiontext LONGTEXT COLLATE utf8mb4_unicode_ci,

score DOUBLE,

timelastattempt BIGINT(10),

studentanswer LONGTEXT COLLATE utf8mb4_unicode_ci,

mycol BIGINT(10),

myrow BIGINT(10),

horizontal BIGINT(10),

answertext LONGTEXT COLLATE utf8mb4_unicode_ci,

correct BIGINT(10),

attachment VARCHAR(200) COLLATE utf8mb4_unicode_ci,

answerid BIGINT(10),

tries BIGINT(10) DEFAULT 0,

CONSTRAINT PRIMARY KEY (id)

, KEY mdl_gamequer_att2_ix (attemptid)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_queries'

;

CREATE TABLE mdl_game_hangman (

id BIGINT(10) NOT NULL,

queryid BIGINT(10),

letters VARCHAR(100) COLLATE utf8mb4_unicode_ci,

allletters VARCHAR(100) COLLATE utf8mb4_unicode_ci,

try SMALLINT(4),

maxtries SMALLINT(4),

finishedword SMALLINT(4),

corrects SMALLINT(4),

iscorrect TINYINT(2),

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_hangman'

;

CREATE TABLE mdl_game_cross (

id BIGINT(10) NOT NULL,

usedcols SMALLINT(3),

usedrows SMALLINT(3),

words SMALLINT(3),

wordsall BIGINT(10),

createscore DOUBLE DEFAULT 0,

createtries BIGINT(10),

createtimelimit BIGINT(10),

createconnectors BIGINT(10),

createfilleds BIGINT(10),

createspaces BIGINT(10),

triesplay BIGINT(10),

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_cross'

;

CREATE TABLE mdl_game_cryptex (

id BIGINT(10) NOT NULL,

letters LONGTEXT COLLATE utf8mb4_unicode_ci,

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_cryptex'

;

CREATE TABLE mdl_game_millionaire (

id BIGINT(10) NOT NULL,

queryid BIGINT(10),

state TINYINT(2) NOT NULL DEFAULT 0,

level TINYINT(2) NOT NULL DEFAULT 0,

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_millionaire'

;

CREATE TABLE mdl_game_sudoku (

id BIGINT(10) NOT NULL,

level SMALLINT(4) DEFAULT 0,

data VARCHAR(81) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

opened SMALLINT(4),

guess VARCHAR(81) COLLATE utf8mb4_unicode_ci,

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_sudoku'

;

CREATE TABLE mdl_game_sudoku_database (

id BIGINT(10) NOT NULL auto_increment,

level SMALLINT(3),

opened TINYINT(2),

data VARCHAR(81) COLLATE utf8mb4_unicode_ci,

CONSTRAINT PRIMARY KEY (id)

, UNIQUE KEY mdl_gamesudodata_dat2_uix (data)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_sudoku_database'

;

CREATE TABLE mdl_game_bookquiz (

id BIGINT(10) NOT NULL,

lastchapterid VARCHAR(81) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_bookquiz'

;

CREATE TABLE mdl_game_bookquiz_chapters (

id BIGINT(10) NOT NULL auto_increment,

attemptid BIGINT(10) NOT NULL,

chapterid VARCHAR(81) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',

CONSTRAINT PRIMARY KEY (id)

, KEY mdl_gamebookchap_attcha2_ix (attemptid, chapterid)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_bookquiz_chapters'

;

CREATE TABLE mdl_game_bookquiz_questions (

id BIGINT(10) NOT NULL auto_increment,

gameid BIGINT(10),

chapterid BIGINT(10),

questioncategoryid BIGINT(10),

CONSTRAINT PRIMARY KEY (id)

, KEY mdl_gamebookques_gamcha2_ix (gameid, chapterid)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_bookquiz'

;

CREATE TABLE mdl_game_export_javame (

id BIGINT(10) NOT NULL auto_increment,

filename VARCHAR(20) COLLATE utf8mb4_unicode_ci,

icon VARCHAR(100) COLLATE utf8mb4_unicode_ci,

createdby VARCHAR(50) COLLATE utf8mb4_unicode_ci,

vendor VARCHAR(50) COLLATE utf8mb4_unicode_ci,

name VARCHAR(20) COLLATE utf8mb4_unicode_ci,

description VARCHAR(100) COLLATE utf8mb4_unicode_ci,

version VARCHAR(10) COLLATE utf8mb4_unicode_ci,

maxpicturewidth BIGINT(10),

maxpictureheight BIGINT(10),

type VARCHAR(10) COLLATE utf8mb4_unicode_ci,

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_export_javame'

;

CREATE TABLE mdl_game_export_html (

id BIGINT(10) NOT NULL auto_increment,

filename VARCHAR(30) COLLATE utf8mb4_unicode_ci,

title VARCHAR(200) COLLATE utf8mb4_unicode_ci,

checkbutton TINYINT(2),

printbutton TINYINT(2),

inputsize SMALLINT(3),

maxpicturewidth BIGINT(10),

maxpictureheight BIGINT(10),

type VARCHAR(10) COLLATE utf8mb4_unicode_ci,

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_export_html'

;

CREATE TABLE mdl_game_snakes (

id BIGINT(10) NOT NULL,

snakesdatabaseid BIGINT(10),

position BIGINT(10),

queryid BIGINT(10),

dice TINYINT(1),

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_snakes'

;

CREATE TABLE mdl_game_snakes_database (

id BIGINT(10) NOT NULL auto_increment,

name VARCHAR(100) COLLATE utf8mb4_unicode_ci,

usedcols SMALLINT(3),

usedrows SMALLINT(3),

data LONGTEXT COLLATE utf8mb4_unicode_ci,

fileboard VARCHAR(100) COLLATE utf8mb4_unicode_ci,

direction TINYINT(2),

headerx BIGINT(10),

headery BIGINT(10),

footerx BIGINT(10),

footery BIGINT(10),

width BIGINT(10),

height BIGINT(10),

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_snakes_database'

;

CREATE TABLE mdl_game_hiddenpicture (

id BIGINT(10) NOT NULL,

correct SMALLINT(4) DEFAULT 0,

wrong SMALLINT(4) DEFAULT 0,

found SMALLINT(4) DEFAULT 0,

CONSTRAINT PRIMARY KEY (id)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_hiddenpicture'

;

CREATE TABLE mdl_game_repetitions (

id BIGINT(10) NOT NULL auto_increment,

gameid BIGINT(10) NOT NULL DEFAULT 0,

userid BIGINT(10) NOT NULL DEFAULT 0,

questionid BIGINT(10) NOT NULL DEFAULT 0,

glossaryentryid BIGINT(10) NOT NULL DEFAULT 0,

repetitions BIGINT(10) DEFAULT 0,

CONSTRAINT PRIMARY KEY (id)

, UNIQUE KEY mdl_gamerepe_gamusequeglo2_uix (gameid, userid, questionid, glossaryentryid)

)

ENGINE = InnoDB

DEFAULT COLLATE = utf8mb4_unicode_ci ROW_FORMAT=Compressed

COMMENT='game_repetitions'

Error code: ddlexecuteerror

×Stack trace:

line 492 of /lib/dml/moodle_database.php: ddl_change_structure_exception thrown

line 1072 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()

line 77 of /lib/ddl/database_manager.php: call to mysqli_native_moodle_database->change_database_structure()

line 427 of /lib/ddl/database_manager.php: call to database_manager->execute_sql_arr()

line 372 of /lib/ddl/database_manager.php: call to database_manager->install_from_xmldb_structure()

line 790 of /lib/upgradelib.php: call to database_manager->install_from_xmldb_file()

line 532 of /lib/upgradelib.php: call to upgrade_plugins_modules()

line 1877 of /lib/upgradelib.php: call to upgrade_plugins()

line 711 of /admin/index.php: call to upgrade_noncore()

Average of ratings: -
In reply to Greg Maron

Re: DDL sql execution error on plugins "Game" after upgrade to 3.8.3+

by Greg Maron -
I am thinking my next step will be to remove the following tables from the MySQL database so that I can try and install again.

mdl_game
mdl_game_attempts
mdl_gameatte_gamusetim2_ix
mdl_game_grades
mdl_gamegrad_use2_ix
mdl_gamegrad_gam2_ix
mdl_game_queries
mdl_gamequer_att2_ix
mdl_game_hangman
mdl_game_cross
mdl_game_cryptex
mdl_game_millionaire
mdl_game_sudoku
mdl_game_sudoku_database
mdl_gamesudodata_dat2_uix
mdl_game_bookquiz
mdl_game_bookquiz_chapters
mdl_gamebookchap_attcha2_ix
mdl_game_bookquiz_questions
mdl_gamebookques_gamcha2_ix
mdl_game_export_javame
mdl_game_export_html
mdl_game_snakes
mdl_game_snakes_database
mdl_game_hiddenpicture
mdl_game_repetitions
mdl_gamerepe_gamusequeglo2_uix