From c8ef0583af9592d4a18eed7913b81fa664cd8397 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolas=20L=C5=93uillet?= Date: Thu, 24 Nov 2016 21:15:07 +0100 Subject: [PATCH] Added explanations about migrations --- docs/en/user/upgrade.rst | 80 +++++++++++++++++++++++++++------------- scripts/update.sh | 1 + 2 files changed, 56 insertions(+), 25 deletions(-) diff --git a/docs/en/user/upgrade.rst b/docs/en/user/upgrade.rst index e6e4c165..5d864139 100644 --- a/docs/en/user/upgrade.rst +++ b/docs/en/user/upgrade.rst @@ -3,42 +3,52 @@ Upgrade your wallabag installation You will find here different ways to upgrade your wallabag: +- `from 2.1.x to 2.2.x <#upgrading-from-2-1-x-to-2-2-x>`_ - `from 2.0.x to 2.1.1 <#upgrade-from-2-0-x-to-2-1-1>`_ -- `from 2.1.x to 2.1.y <#upgrading-from-2-1-x-to-2-1-y>`_ - `from 1.x to 2.x <#from-wallabag-1-x>`_ -Upgrade from 2.0.x to 2.1.1 ---------------------------- - -.. warning:: - - Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade. +Upgrading from 2.1.x to 2.2.x +----------------------------- Upgrade on a dedicated web server ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: - rm -rf var/cache/* - git fetch origin - git fetch --tags - git checkout 2.1.1 --force - SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist - php bin/console doctrine:migrations:migrate --env=prod - php bin/console cache:clear --env=prod + make update + +Explanations about database migrations +"""""""""""""""""""""""""""""""""""""" + +All the database migrations are stored in ``app/DoctrineMigrations``. You can execute each migration individually: +``bin/console doctrine:migrations:migrate 20161001072726 --env=prod``. + + +Here are the migrations for 2.1.x to 2.2.0 release: + +* ``20161001072726``: added foreign keys for for account resetting +* ``20161022134138``: converted database to ``utf8mb4`` encoding (for MySQL only) +* ``20161024212538``: added ``user_id`` column on ``oauth2_clients`` to prevent users to delete API clients from other users +* ``20161031132655``: added the internal setting to enable/disable downloading pictures +* ``20161104073720``: added ``created_at`` index on ``entry`` table +* ``20161106113822``: added ``action_mark_as_read`` field on ``config`` table +* ``20161117071626``: added the internal setting to share articles to unmark.it +* ``20161118134328``: added ``http_status`` field on ``entry`` table +* ``20161122144743``: added the internal setting to enable/disable fetching articles with paywall +* ``20161122203647``: dropped ``expired`` and ``credentials_expired`` fields on ``user`` table Upgrade on a shared hosting ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Backup your ``app/config/parameters.yml`` file. -Download the 2.1.1 release of wallabag: +Download the last release of wallabag: .. code-block:: bash - wget https://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz + wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package -(md5 hash of the 2.1.1 package: ``9584a3b60a2b2a4de87f536548caac93``) +You will find the `md5 hash of the latest package on our website `_. Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours. @@ -60,30 +70,38 @@ You must run some SQL queries to upgrade your database. We assume that the table ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL; DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key'; -Upgrading from 2.1.x to 2.1.y ------------------------------ +Upgrade from 2.0.x to 2.1.1 +--------------------------- + +.. warning:: + + Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade. Upgrade on a dedicated web server ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In order to upgrade your wallabag installation and get the last version, run the following command in you wallabag folder: - :: - make update + rm -rf var/cache/* + git fetch origin + git fetch --tags + git checkout 2.1.1 --force + SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist + php bin/console doctrine:migrations:migrate --env=prod + php bin/console cache:clear --env=prod Upgrade on a shared hosting ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Backup your ``app/config/parameters.yml`` file. -Download the last release of wallabag: +Download the 2.1.1 release of wallabag: .. code-block:: bash - wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package + wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz -You will find the `md5 hash of the latest package on our website `_. +(md5 hash of the 2.1.1 package: ``9584a3b60a2b2a4de87f536548caac93``) Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours. @@ -93,6 +111,18 @@ If you use SQLite, you must also copy your ``data/`` folder inside the new insta Empty ``var/cache`` folder. +You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_`` and the database server is a MySQL one: + +.. code-block:: sql + + ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL; + INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry'); + ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL; + INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import'); + INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import'); + ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL; + DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key'; + From wallabag 1.x ----------------- diff --git a/scripts/update.sh b/scripts/update.sh index a29e0168..0860f997 100644 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -16,4 +16,5 @@ git fetch --tags TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) git checkout $TAG --force SYMFONY_ENV=$ENV $COMPOSER_COMMAND install --no-dev -o --prefer-dist +php bin/console doctrine:migrations:migrate --env=$ENV php bin/console cache:clear --env=$ENV -- 2.41.0