2016-10-12 12:36:59 +02:00
## Preparation
2017-01-26 18:52:54 +01:00
2017-05-07 18:44:05 +02:00
### Note your current version
If anything goes wrong, it's important for us to know which version you're upgrading from.
The current version is present in the `version.php` file.
2016-10-12 12:36:59 +02:00
### Backup your data
Shaarli stores all user data under the `data` directory:
- `data/config.php` - main configuration file
- `data/datastore.php` - bookmarked links
- `data/ipbans.php` - banned IP addresses
2017-05-07 18:44:05 +02:00
- `data/updates.txt` - contains all automatic update to the configuration and datastore files already run
2016-10-12 12:36:59 +02:00
2017-06-18 06:32:30 +02:00
See [Shaarli configuration ](Shaarli configuration ) for more information about Shaarli resources.
2016-10-12 12:36:59 +02:00
It is recommended to backup this repository _before_ starting updating/upgrading Shaarli:
- users with SSH access: copy or archive the directory to a temporary location
- users with FTP access: download a local copy of your Shaarli installation using your favourite client
### Migrating data from a previous installation
2017-01-26 18:52:54 +01:00
2016-10-12 12:36:59 +02:00
As all user data is kept under `data` , this is the only directory you need to worry about when migrating to a new installation, which corresponds to the following steps:
- backup the `data` directory
- install or update Shaarli:
2017-06-18 06:32:30 +02:00
- fresh installation - see [Download and installation ](Download and installation )
2016-10-12 12:36:59 +02:00
- update - see the following sections
- check or restore the `data` directory
2017-05-07 18:44:05 +02:00
## Recommended : Upgrading from release archives
2016-10-12 12:36:59 +02:00
2017-01-26 18:52:54 +01:00
All tagged revisions can be downloaded as tarballs or ZIP archives from the [releases ](https://github.com/shaarli/Shaarli/releases ) page.
2017-06-18 06:32:30 +02:00
We recommend that you use the latest release tarball with the `-full` suffix. It contains the dependencies, please read [Download and installation ](Download and installation ) for `git` complete instructions.
2016-10-12 12:36:59 +02:00
2017-05-07 18:44:05 +02:00
Once downloaded, extract the archive locally and update your remote installation (e.g. via FTP) -be sure you keep the content of the `data` directory!
2016-10-12 12:36:59 +02:00
2017-06-18 06:32:30 +02:00
After upgrading, access your fresh Shaarli installation from a web browser; the configuration and data store will then be automatically updated, and new settings added to `data/config.json.php` (see [Shaarli configuration ](Shaarli configuration ) for more details).
2016-10-12 12:36:59 +02:00
## Upgrading with Git
2017-01-26 18:52:54 +01:00
2016-10-12 12:36:59 +02:00
### Updating a community Shaarli
2017-01-26 18:52:54 +01:00
If you have installed Shaarli from the [community Git repository ](Download#clone-with-git-recommended ), simply [pull new changes ](https://www.git-scm.com/docs/git-pull ) from your local clone:
2016-10-12 12:36:59 +02:00
```bash
$ cd /path/to/shaarli
$ git pull
From github.com:shaarli/Shaarli
* branch master -> FETCH_HEAD
Updating ebd67c6..521f0e6
Fast-forward
application/Url.php | 1 +
shaarli_version.php | 2 +-
tests/Url/UrlTest.php | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
```
2017-01-26 18:52:54 +01:00
Shaarli >= `v0.8.x` : install/update third-party PHP dependencies using [Composer ](https://getcomposer.org/ ):
2016-10-12 12:36:59 +02:00
```bash
2017-05-07 18:44:05 +02:00
$ composer install --no-dev
2016-10-12 12:36:59 +02:00
Loading composer repositories with package information
Updating dependencies
- Installing shaarli/netscape-bookmark-parser (v1.0.1)
Downloading: 100%
```
### Migrating and upgrading from Sebsauvage's repository
2017-01-26 18:52:54 +01:00
If you have installed Shaarli from [Sebsauvage's original Git repository ](https://github.com/sebsauvage/Shaarli ), you can use [Git remotes ](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes ) to update your working copy.
2016-10-12 12:36:59 +02:00
The following guide assumes that:
2017-01-26 18:52:54 +01:00
- you have a basic knowledge of Git [branching ](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell ) and [remote repositories ](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes )
2016-10-12 12:36:59 +02:00
- the default remote is named `origin` and points to Sebsauvage's repository
- the current branch is `master`
2017-01-26 18:52:54 +01:00
- if you have personal branches containing customizations, you will need to [rebase them ](https://git-scm.com/book/en/v2/Git-Branching-Rebasing ) after the upgrade; beware though, a lot of changes have been made since the community fork has been created, so things are very likely to break!
2016-10-12 12:36:59 +02:00
- the working copy is clean:
- no versioned file has been locally modified
- no untracked files are present
#### Step 0: show repository information
2017-01-26 18:52:54 +01:00
2016-10-12 12:36:59 +02:00
```bash
$ cd /path/to/shaarli
$ git remote -v
origin https://github.com/sebsauvage/Shaarli (fetch)
origin https://github.com/sebsauvage/Shaarli (push)
$ git branch -vv
2017-01-26 18:52:54 +01:00
* master 029f75f [origin/master] Update README.md
2016-10-12 12:36:59 +02:00
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
```
#### Step 1: update Git remotes
2017-01-26 18:52:54 +01:00
2016-10-12 12:36:59 +02:00
```
$ git remote rename origin sebsauvage
$ git remote -v
sebsauvage https://github.com/sebsauvage/Shaarli (fetch)
sebsauvage https://github.com/sebsauvage/Shaarli (push)
$ git remote add origin https://github.com/shaarli/Shaarli
$ git fetch origin
remote: Counting objects: 3015, done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 3015 (delta 446), reused 457 (delta 446), pack-reused 2550
Receiving objects: 100% (3015/3015), 2.59 MiB | 918.00 KiB/s, done.
Resolving deltas: 100% (1899/1899), completed with 48 local objects.
From https://github.com/shaarli/Shaarli
2017-01-26 18:52:54 +01:00
* [new branch] master -> origin/master
* [new branch] stable -> origin/stable
[...]
* [new tag] v0.6.4 -> v0.6.4
* [new tag] v0.7.0 -> v0.7.0
2016-10-12 12:36:59 +02:00
```
#### Step 2: use the stable community branch
```bash
$ git checkout origin/stable -b stable
Branch stable set up to track remote branch stable from origin.
Switched to a new branch 'stable'
$ git branch -vv
2017-01-26 18:52:54 +01:00
master 029f75f [sebsauvage/master] Update README.md
* stable 890afc3 [origin/stable] Merge pull request #509 from ArthurHoaro/v0.6.5
2016-10-12 12:36:59 +02:00
```
2017-01-26 18:52:54 +01:00
Shaarli >= `v0.8.x` : install/update third-party PHP dependencies using [Composer ](https://getcomposer.org/ ):
2016-10-12 12:36:59 +02:00
```bash
2017-05-07 18:44:05 +02:00
$ composer install --no-dev
2016-10-12 12:36:59 +02:00
Loading composer repositories with package information
Updating dependencies
- Installing shaarli/netscape-bookmark-parser (v1.0.1)
Downloading: 100%
```
Optionally, you can delete information related to the legacy version:
```bash
$ git branch -D master
Deleted branch master (was 029f75f).
$ git remote remove sebsauvage
$ git remote -v
origin https://github.com/shaarli/Shaarli (fetch)
origin https://github.com/shaarli/Shaarli (push)
$ git gc
Counting objects: 3317, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (1237/1237), done.
Writing objects: 100% (3317/3317), done.
Total 3317 (delta 2050), reused 3301 (delta 2034)to
```
#### Step 3: configuration
2017-01-26 18:52:54 +01:00
2017-06-18 06:32:30 +02:00
After migrating, access your fresh Shaarli installation from a web browser; the configuration will then be automatically updated, and new settings added to `data/config.php` (see [Shaarli configuration ](Shaarli configuration ) for more details).
2017-05-07 18:44:05 +02:00
## Troubleshooting
If the solutions provided here doesn't work, please open an issue specifying which version you're upgrading from and to.
### You must specify an integer as a key
In `v0.8.1` we changed how link keys are handled (from timestamps to incremental integers).
Take a look at `data/updates.txt` content.
#### `updates.txt` contains `updateMethodDatastoreIds`
Try to delete it and refresh your page while being logged in.
#### `updates.txt` doesn't exists or doesn't contain `updateMethodDatastoreIds`
1. Create `data/updates.txt` if it doesn't exist.
2. Paste this string in the update file `;updateMethodRenameDashTags;`
3. Login to Shaarli.
4. Delete the update file.
5. Refresh.