]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Moved queries in a separate file 2646/head
authorNicolas Lœuillet <nicolas@loeuillet.org>
Wed, 25 Jan 2017 11:34:20 +0000 (12:34 +0100)
committerNicolas Lœuillet <nicolas@loeuillet.org>
Wed, 25 Jan 2017 11:34:20 +0000 (12:34 +0100)
docs/de/user/query-upgrade-21-22.rst [new file with mode: 0644]
docs/de/user/upgrade.rst
docs/en/user/query-upgrade-21-22.rst [new file with mode: 0644]
docs/en/user/upgrade.rst
docs/fr/user/query-upgrade-21-22.rst [new file with mode: 0644]
docs/fr/user/upgrade.rst

diff --git a/docs/de/user/query-upgrade-21-22.rst b/docs/de/user/query-upgrade-21-22.rst
new file mode 100644 (file)
index 0000000..cd201dc
--- /dev/null
@@ -0,0 +1,797 @@
+Migration 20161001072726
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
+    ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
+    ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+
+Migration down
+""""""""""""""
+
+We didn't write down migration for ``20161001072726``.
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
+    ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
+    ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+
+Migration down
+""""""""""""""
+
+We didn't write down migration for ``20161001072726``.
+
+SQLite
+^^^^^^
+
+This migration can only be executed safely on MySQL or PostgreSQL.
+
+Migration 20161022134138
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
+    ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
+    ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
+    ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+
+PostgreSQL and SQLite
+^^^^^^^^^^^^^^^^^^^^^
+
+This migration only apply to MySQL.
+
+Migration 20161024212538
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
+    ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
+    ALTER TABLE wallabag_oauth2_clients DROP user_id
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
+    ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
+    ALTER TABLE wallabag_oauth2_clients DROP user_id
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
+    DROP TABLE wallabag_oauth2_clients
+    CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id), CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE)
+    INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
+    DROP TABLE __temp__wallabag_oauth2_clients
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_635D765EA76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
+    DROP TABLE wallabag_oauth2_clients
+    CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
+    DROP TABLE __temp__wallabag_oauth2_clients
+
+Migration 20161031132655
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+Migration 20161104073720
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_created_at ON wallabag_entry
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX idx_entry_created_at
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_created_at
+    DROP INDEX IDX_F4D18282A76ED395
+    DROP INDEX created_at_idx
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+
+Migration 20161106113822
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP action_mark_as_read
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP action_mark_as_read
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_87E64C53A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
+    DROP TABLE wallabag_config
+    CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
+    DROP TABLE __temp__wallabag_config
+    CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
+
+Migration 20161117071626
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+Migration 20161118134328
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry DROP http_status
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry DROP http_status
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+
+Migration 20161122144743
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+Migration 20161122203647
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP expired
+    ALTER TABLE wallabag_user DROP credentials_expired
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_1D63E7E5C05FB297
+    DROP INDEX UNIQ_1D63E7E5A0D96FBF
+    DROP INDEX UNIQ_1D63E7E592FC23A8
+    CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM wallabag_user
+    DROP TABLE wallabag_user
+    CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM __temp__wallabag_user
+    DROP TABLE __temp__wallabag_user
+    CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
+    CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
+    CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
+
+Migration 20161128084725
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP list_mode
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP list_mode
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_87E64C53A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
+    DROP TABLE wallabag_config
+    CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
+    DROP TABLE __temp__wallabag_config
+    CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
+
+Migration 20161128131503
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP locked
+    ALTER TABLE wallabag_user DROP credentials_expire_at
+    ALTER TABLE wallabag_user DROP expires_at
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
+    ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_1D63E7E592FC23A8
+    DROP INDEX UNIQ_1D63E7E5A0D96FBF
+    DROP INDEX UNIQ_1D63E7E5C05FB297
+    CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM wallabag_user
+    DROP TABLE wallabag_user
+    CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, expired SMALLINT DEFAULT NULL, credentials_expired SMALLINT DEFAULT NULL, PRIMARY KEY(id))
+    INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired 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)
+
+Migration 20161214094403
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_uid ON wallabag_entry
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX idx_entry_uid
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_F4D18282A76ED395
+    DROP INDEX created_at_idx
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_uid
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
index 6557e2a5d1f7546fba0bafd5e93a77e2a8fdf48b..1107616e2fc3ace708c7eef7faf477c3af46b67e 100644 (file)
@@ -59,10 +59,9 @@ Falls du SQLite nutzt, musst du außerdem deinen ``data/``-Ordner in die neue In
 
 Leere den ``var/cache``-Ordner.
 
-Du musst einige SQL-Abfragen durchführen, um deine Datenbank zu aktualisieren. Wir gehen in diesem Fall davon aus, dass das Tabellenpräfix ``wallabag_`` ist und eine MySQL-Datenbank verwendet wird:
-
-.. code-block:: sql
+Du musst einige SQL-Abfragen durchführen, um deine Datenbank zu aktualisieren. Wir gehen in diesem Fall davon aus, dass das Tabellenpräfix ``wallabag_`` ist.
 
+`You can find all the queries here <http://doc.wallabag.org/en/master/user/query-upgrade-21-22.html>`_.
 
 Upgrade von 2.0.x zu 2.1.1
 ---------------------------
diff --git a/docs/en/user/query-upgrade-21-22.rst b/docs/en/user/query-upgrade-21-22.rst
new file mode 100644 (file)
index 0000000..cd201dc
--- /dev/null
@@ -0,0 +1,797 @@
+Migration 20161001072726
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
+    ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
+    ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+
+Migration down
+""""""""""""""
+
+We didn't write down migration for ``20161001072726``.
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
+    ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
+    ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+
+Migration down
+""""""""""""""
+
+We didn't write down migration for ``20161001072726``.
+
+SQLite
+^^^^^^
+
+This migration can only be executed safely on MySQL or PostgreSQL.
+
+Migration 20161022134138
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
+    ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
+    ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
+    ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+
+PostgreSQL and SQLite
+^^^^^^^^^^^^^^^^^^^^^
+
+This migration only apply to MySQL.
+
+Migration 20161024212538
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
+    ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
+    ALTER TABLE wallabag_oauth2_clients DROP user_id
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
+    ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
+    ALTER TABLE wallabag_oauth2_clients DROP user_id
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
+    DROP TABLE wallabag_oauth2_clients
+    CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id), CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE)
+    INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
+    DROP TABLE __temp__wallabag_oauth2_clients
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_635D765EA76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
+    DROP TABLE wallabag_oauth2_clients
+    CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
+    DROP TABLE __temp__wallabag_oauth2_clients
+
+Migration 20161031132655
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+Migration 20161104073720
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_created_at ON wallabag_entry
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX idx_entry_created_at
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_created_at
+    DROP INDEX IDX_F4D18282A76ED395
+    DROP INDEX created_at_idx
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+
+Migration 20161106113822
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP action_mark_as_read
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP action_mark_as_read
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_87E64C53A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
+    DROP TABLE wallabag_config
+    CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
+    DROP TABLE __temp__wallabag_config
+    CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
+
+Migration 20161117071626
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+Migration 20161118134328
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry DROP http_status
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry DROP http_status
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+
+Migration 20161122144743
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+Migration 20161122203647
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP expired
+    ALTER TABLE wallabag_user DROP credentials_expired
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_1D63E7E5C05FB297
+    DROP INDEX UNIQ_1D63E7E5A0D96FBF
+    DROP INDEX UNIQ_1D63E7E592FC23A8
+    CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM wallabag_user
+    DROP TABLE wallabag_user
+    CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM __temp__wallabag_user
+    DROP TABLE __temp__wallabag_user
+    CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
+    CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
+    CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
+
+Migration 20161128084725
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP list_mode
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP list_mode
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_87E64C53A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
+    DROP TABLE wallabag_config
+    CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
+    DROP TABLE __temp__wallabag_config
+    CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
+
+Migration 20161128131503
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP locked
+    ALTER TABLE wallabag_user DROP credentials_expire_at
+    ALTER TABLE wallabag_user DROP expires_at
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
+    ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_1D63E7E592FC23A8
+    DROP INDEX UNIQ_1D63E7E5A0D96FBF
+    DROP INDEX UNIQ_1D63E7E5C05FB297
+    CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM wallabag_user
+    DROP TABLE wallabag_user
+    CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, expired SMALLINT DEFAULT NULL, credentials_expired SMALLINT DEFAULT NULL, PRIMARY KEY(id))
+    INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired 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)
+
+Migration 20161214094403
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_uid ON wallabag_entry
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX idx_entry_uid
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_F4D18282A76ED395
+    DROP INDEX created_at_idx
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_uid
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
index b3972bce3e63b8e0ace4b8e44abd1b3f8ccdb038..99260e13509fc4b1f177d4974593d7dc5b380187 100644 (file)
@@ -70,803 +70,7 @@ You must run some SQL queries to upgrade your database. We assume that the table
 
 You may encounter issues with indexes names: if so, please change queries with the correct index name.
 
-Migration 20161001072726
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
-    ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
-    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
-    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
-    ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
-    ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
-
-Migration down
-""""""""""""""
-
-We didn't write down migration for ``20161001072726``.
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
-    ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
-    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
-    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
-    ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
-    ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
-
-Migration down
-""""""""""""""
-
-We didn't write down migration for ``20161001072726``.
-
-SQLite
-^^^^^^
-
-This migration can only be executed safely on MySQL or PostgreSQL.
-
-Migration 20161022134138
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
-    ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
-    ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
-    ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-    ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
-    ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-    ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
-PostgreSQL and SQLite
-^^^^^^^^^^^^^^^^^^^^^
-
-This migration only apply to MySQL.
-
-Migration 20161024212538
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
-    ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
-    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
-    ALTER TABLE wallabag_oauth2_clients DROP user_id
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
-    ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
-    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
-
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
-    ALTER TABLE wallabag_oauth2_clients DROP user_id
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
-    DROP TABLE wallabag_oauth2_clients
-    CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id), CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE)
-    INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
-    DROP TABLE __temp__wallabag_oauth2_clients
-    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX IDX_635D765EA76ED395
-    CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
-    DROP TABLE wallabag_oauth2_clients
-    CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
-    INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
-    DROP TABLE __temp__wallabag_oauth2_clients
-
-Migration 20161031132655
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
-
-Migration 20161104073720
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX IDX_entry_created_at ON wallabag_entry
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX idx_entry_created_at
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX created_at_idx
-    DROP INDEX IDX_F4D18282A76ED395
-    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
-    DROP TABLE wallabag_entry
-    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
-    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
-    DROP TABLE __temp__wallabag_entry
-    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
-    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
-    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX IDX_entry_created_at
-    DROP INDEX IDX_F4D18282A76ED395
-    DROP INDEX created_at_idx
-    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
-    DROP TABLE wallabag_entry
-    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
-    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
-    DROP TABLE __temp__wallabag_entry
-    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
-    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
-
-Migration 20161106113822
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config DROP action_mark_as_read
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config DROP action_mark_as_read
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX UNIQ_87E64C53A76ED395
-    CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
-    DROP TABLE wallabag_config
-    CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
-    INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
-    DROP TABLE __temp__wallabag_config
-    CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
-
-Migration 20161117071626
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
-
-Migration 20161118134328
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_entry DROP http_status
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_entry DROP http_status
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX created_at_idx
-    DROP INDEX IDX_F4D18282A76ED395
-    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
-    DROP TABLE wallabag_entry
-    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
-    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
-    DROP TABLE __temp__wallabag_entry
-    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
-    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
-
-Migration 20161122144743
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
-
-Migration 20161122203647
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user DROP expired
-    ALTER TABLE wallabag_user DROP credentials_expired
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
-    ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX UNIQ_1D63E7E5C05FB297
-    DROP INDEX UNIQ_1D63E7E5A0D96FBF
-    DROP INDEX UNIQ_1D63E7E592FC23A8
-    CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM wallabag_user
-    DROP TABLE wallabag_user
-    CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
-    INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM __temp__wallabag_user
-    DROP TABLE __temp__wallabag_user
-    CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
-    CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
-    CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
-    ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
-
-Migration 20161128084725
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config DROP list_mode
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config DROP list_mode
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX UNIQ_87E64C53A76ED395
-    CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
-    DROP TABLE wallabag_config
-    CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
-    INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
-    DROP TABLE __temp__wallabag_config
-    CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
-
-Migration 20161128131503
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user DROP locked
-    ALTER TABLE wallabag_user DROP credentials_expire_at
-    ALTER TABLE wallabag_user DROP expires_at
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
-    ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
-    ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
-    ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
-    ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX UNIQ_1D63E7E592FC23A8
-    DROP INDEX UNIQ_1D63E7E5A0D96FBF
-    DROP INDEX UNIQ_1D63E7E5C05FB297
-    CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM wallabag_user
-    DROP TABLE wallabag_user
-    CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, expired SMALLINT DEFAULT NULL, credentials_expired SMALLINT DEFAULT NULL, PRIMARY KEY(id))
-    INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired 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)
-
-Migration 20161214094403
-------------------------
-
-MySQL
-^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX IDX_entry_uid ON wallabag_entry
-
-PostgreSQL
-^^^^^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX idx_entry_uid
-
-SQLite
-^^^^^^
-
-Migration up
-""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX IDX_F4D18282A76ED395
-    DROP INDEX created_at_idx
-    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
-    DROP TABLE wallabag_entry
-    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
-    INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
-    DROP TABLE __temp__wallabag_entry
-    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
-    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
-    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
-
-Migration down
-""""""""""""""
-
-.. code-block:: sql
-
-    DROP INDEX IDX_entry_uid
-    DROP INDEX created_at_idx
-    DROP INDEX IDX_F4D18282A76ED395
-    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
-    DROP TABLE wallabag_entry
-    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
-    INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
-    DROP TABLE __temp__wallabag_entry
-    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
-    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+`You can find all the queries here <http://doc.wallabag.org/en/master/user/query-upgrade-21-22.html>`_.
 
 ***************************
 Upgrade from 2.0.x to 2.1.1
diff --git a/docs/fr/user/query-upgrade-21-22.rst b/docs/fr/user/query-upgrade-21-22.rst
new file mode 100644 (file)
index 0000000..cd201dc
--- /dev/null
@@ -0,0 +1,797 @@
+Migration 20161001072726
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
+    ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
+    ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+
+Migration down
+""""""""""""""
+
+We didn't write down migration for ``20161001072726``.
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
+    ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
+    ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
+    ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
+
+Migration down
+""""""""""""""
+
+We didn't write down migration for ``20161001072726``.
+
+SQLite
+^^^^^^
+
+This migration can only be executed safely on MySQL or PostgreSQL.
+
+Migration 20161022134138
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
+    ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
+    ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
+    ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+    ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+
+PostgreSQL and SQLite
+^^^^^^^^^^^^^^^^^^^^^
+
+This migration only apply to MySQL.
+
+Migration 20161024212538
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
+    ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
+    ALTER TABLE wallabag_oauth2_clients DROP user_id
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
+    ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
+    ALTER TABLE wallabag_oauth2_clients DROP user_id
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
+    DROP TABLE wallabag_oauth2_clients
+    CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id), CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE)
+    INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
+    DROP TABLE __temp__wallabag_oauth2_clients
+    CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_635D765EA76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
+    DROP TABLE wallabag_oauth2_clients
+    CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
+    DROP TABLE __temp__wallabag_oauth2_clients
+
+Migration 20161031132655
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
+
+Migration 20161104073720
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_created_at ON wallabag_entry
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX idx_entry_created_at
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_created_at
+    DROP INDEX IDX_F4D18282A76ED395
+    DROP INDEX created_at_idx
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+
+Migration 20161106113822
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP action_mark_as_read
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP action_mark_as_read
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_87E64C53A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
+    DROP TABLE wallabag_config
+    CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
+    DROP TABLE __temp__wallabag_config
+    CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
+
+Migration 20161117071626
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
+
+Migration 20161118134328
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry DROP http_status
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry DROP http_status
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+
+Migration 20161122144743
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
+
+Migration 20161122203647
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP expired
+    ALTER TABLE wallabag_user DROP credentials_expired
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_1D63E7E5C05FB297
+    DROP INDEX UNIQ_1D63E7E5A0D96FBF
+    DROP INDEX UNIQ_1D63E7E592FC23A8
+    CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM wallabag_user
+    DROP TABLE wallabag_user
+    CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM __temp__wallabag_user
+    DROP TABLE __temp__wallabag_user
+    CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
+    CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
+    CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
+
+Migration 20161128084725
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP list_mode
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config DROP list_mode
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_87E64C53A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
+    DROP TABLE wallabag_config
+    CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
+    INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
+    DROP TABLE __temp__wallabag_config
+    CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
+
+Migration 20161128131503
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user DROP locked
+    ALTER TABLE wallabag_user DROP credentials_expire_at
+    ALTER TABLE wallabag_user DROP expires_at
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
+    ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
+    ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX UNIQ_1D63E7E592FC23A8
+    DROP INDEX UNIQ_1D63E7E5A0D96FBF
+    DROP INDEX UNIQ_1D63E7E5C05FB297
+    CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM wallabag_user
+    DROP TABLE wallabag_user
+    CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, expired SMALLINT DEFAULT NULL, credentials_expired SMALLINT DEFAULT NULL, PRIMARY KEY(id))
+    INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired 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)
+
+Migration 20161214094403
+------------------------
+
+MySQL
+^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_uid ON wallabag_entry
+
+PostgreSQL
+^^^^^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX idx_entry_uid
+
+SQLite
+^^^^^^
+
+Migration up
+""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_F4D18282A76ED395
+    DROP INDEX created_at_idx
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
+
+Migration down
+""""""""""""""
+
+.. code-block:: sql
+
+    DROP INDEX IDX_entry_uid
+    DROP INDEX created_at_idx
+    DROP INDEX IDX_F4D18282A76ED395
+    CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry
+    DROP TABLE wallabag_entry
+    CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id))
+    INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry
+    DROP TABLE __temp__wallabag_entry
+    CREATE INDEX created_at_idx ON wallabag_entry (created_at)
+    CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
index 16c103eecfabfb95713a6ad2f9533e4adc15d383..088b19a00570cbba163d203af75ac6478856d1fb 100644 (file)
@@ -59,9 +59,9 @@ Si vous utilisez SQLite, vous devez également conserver le contenu du répertoi
 
 Videz le répertoire ``var/cache``.
 
-Vous allez devoir également exécuter des requêtes SQL pour mettre à jour votre base de données. Nous partons du principe que le préfixe de vos tables est ``wallabag_`` et que le serveur SQL est un serveur MySQL :
+Vous allez devoir également exécuter des requêtes SQL pour mettre à jour votre base de données. Nous partons du principe que le préfixe de vos tables est ``wallabag_``.
 
-.. code-block:: sql
+`Vous trouverez toutes les requêtes à exécuter ici <http://doc.wallabag.org/fr/master/user/query-upgrade-21-22.html>`_.
 
 
 Mettre à jour de la 2.0.x à la 2.1.1