From 2.5 to 2.6
You’ll find all queries to run when upgrading.
We assume that the table prefix is wallabag_
. Don’t forget to backup your database before migrating.
You may encounter issues with indexes names: if so, please change queries with the correct index name.
MySQL
ALTER TABLE wallabag_config DROP theme;
ALTER TABLE wallabag_user CHANGE backupCodes backupCodes JSON DEFAULT NULL;
ALTER TABLE wallabag_config ADD display_thumbnails INT(11) NOT NULL DEFAULT 1;
PostgreSQL
ALTER TABLE wallabag_config DROP theme;
ALTER TABLE wallabag_user ALTER backupcodes TYPE JSON USING backupcodes::json
ALTER TABLE wallabag_config ADD display_thumbnails INT NOT NULL DEFAULT 1;
SQLite
CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, password, last_login, password_requested_at, name, created_at, updated_at, authCode, emailTwoFactor, salt, confirmation_token, roles, googleAuthenticatorSecret, backupCodes FROM wallabag_user;
DROP TABLE wallabag_user;
CREATE TABLE wallabag_user (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, username VARCHAR(180) NOT NULL, username_canonical VARCHAR(180) NOT NULL, email VARCHAR(180) NOT NULL, email_canonical VARCHAR(180) NOT NULL, enabled BOOLEAN NOT NULL, salt VARCHAR(255) DEFAULT NULL, password VARCHAR(255) NOT NULL, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL --(DC2Type:array)
, name CLOB DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, googleAuthenticatorSecret VARCHAR(255) DEFAULT NULL, backupCodes CLOB DEFAULT NULL --(DC2Type:json)
, emailTwoFactor BOOLEAN NOT NULL);
INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, password, last_login, password_requested_at, name, created_at, updated_at, authCode, emailTwoFactor, salt, confirmation_token, roles, googleAuthenticatorSecret, backupCodes) SELECT id, username, username_canonical, email, email_canonical, enabled, password, last_login, password_requested_at, name, created_at, updated_at, authCode, emailTwoFactor, salt, confirmation_token, roles, googleAuthenticatorSecret, backupCodes FROM __temp__wallabag_user;
DROP TABLE __temp__wallabag_user;
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical);
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical);
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token);
CREATE TABLE "__temp__wallabag_config" (
"id" INTEGER NOT NULL,
"user_id" INTEGER DEFAULT NULL,
"items_per_page" INTEGER NOT NULL,
"language" VARCHAR(255) NOT NULL,
"reading_speed" DOUBLE PRECISION DEFAULT NULL,
"pocket_consumer_key" VARCHAR(255) DEFAULT NULL,
"action_mark_as_read" INTEGER DEFAULT 0,
"list_mode" INTEGER DEFAULT NULL,
"feed_token" VARCHAR(255) DEFAULT NULL,
"feed_limit" INTEGER DEFAULT NULL,
"display_thumbnails" INTEGER DEFAULT 1,
CONSTRAINT "FK_87E64C53A76ED395" FOREIGN KEY("user_id") REFERENCES "wallabag_user"("id") ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE,
PRIMARY KEY("id" AUTOINCREMENT)
);
INSERT INTO __temp__wallabag_config ("action_mark_as_read","display_thumbnails","feed_limit","feed_token","id","items_per_page","language","list_mode","pocket_consumer_key","reading_speed","user_id") SELECT "action_mark_as_read","display_thumbnails","feed_limit","feed_token","id","items_per_page","language","list_mode","pocket_consumer_key","reading_speed","user_id" FROM wallabag_config;
DROP TABLE wallabag_config;
ALTER TABLE __temp__wallabag_config RENAME TO wallabag_config;
CREATE INDEX config_feed_token ON wallabag_config ("feed_token");
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config ("user_id");