]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - doc/html/Upgrade-and-migration/index.html
Merge pull request #911 from virtualtam/fix/release/composer
[github/shaarli/Shaarli.git] / doc / html / Upgrade-and-migration / index.html
1 <!DOCTYPE html>
2 <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
3 <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
4 <head>
5 <meta charset="utf-8">
6 <meta http-equiv="X-UA-Compatible" content="IE=edge">
7 <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
9
10 <link rel="shortcut icon" href="../img/favicon.ico">
11 <title>Upgrade and migration - Shaarli Documentation</title>
12 <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
13
14 <link rel="stylesheet" href="../css/theme.css" type="text/css" />
15 <link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
16 <link rel="stylesheet" href="../css/highlight.css">
17 <link href="../github-markdown.css" rel="stylesheet">
18
19 <script>
20 // Current page data
21 var mkdocs_page_name = "Upgrade and migration";
22 var mkdocs_page_input_path = "Upgrade-and-migration.md";
23 var mkdocs_page_url = "/Upgrade-and-migration/";
24 </script>
25
26 <script src="../js/jquery-2.1.1.min.js"></script>
27 <script src="../js/modernizr-2.8.3.min.js"></script>
28 <script type="text/javascript" src="../js/highlight.pack.js"></script>
29
30 </head>
31
32 <body class="wy-body-for-nav" role="document">
33
34 <div class="wy-grid-for-nav">
35
36
37 <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
38 <div class="wy-side-nav-search">
39 <a href=".." class="icon icon-home"> Shaarli Documentation</a>
40 <div role="search">
41 <form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
42 <input type="text" name="q" placeholder="Search docs" />
43 </form>
44 </div>
45 </div>
46
47 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
48 <ul class="current">
49
50
51 <li class="toctree-l1">
52
53 <a class="" href="..">Home</a>
54 </li>
55
56 <li class="toctree-l1">
57
58 <span class="caption-text">Setup</span>
59 <ul class="subnav">
60 <li class="">
61
62 <a class="" href="../Download-and-Installation/">Download and Installation</a>
63 </li>
64 <li class=" current">
65
66 <a class="current" href="./">Upgrade and migration</a>
67 <ul class="subnav">
68
69 <li class="toctree-l3"><a href="#preparation">Preparation</a></li>
70
71 <ul>
72
73 <li><a class="toctree-l4" href="#note-your-current-version">Note your current version</a></li>
74
75 <li><a class="toctree-l4" href="#backup-your-data">Backup your data</a></li>
76
77 <li><a class="toctree-l4" href="#migrating-data-from-a-previous-installation">Migrating data from a previous installation</a></li>
78
79 </ul>
80
81
82 <li class="toctree-l3"><a href="#recommended-upgrading-from-release-archives">Recommended : Upgrading from release archives</a></li>
83
84
85 <li class="toctree-l3"><a href="#upgrading-with-git">Upgrading with Git</a></li>
86
87 <ul>
88
89 <li><a class="toctree-l4" href="#updating-a-community-shaarli">Updating a community Shaarli</a></li>
90
91 <li><a class="toctree-l4" href="#migrating-and-upgrading-from-sebsauvages-repository">Migrating and upgrading from Sebsauvage's repository</a></li>
92
93 </ul>
94
95
96 <li class="toctree-l3"><a href="#troubleshooting">Troubleshooting</a></li>
97
98 <ul>
99
100 <li><a class="toctree-l4" href="#you-must-specify-an-integer-as-a-key">You must specify an integer as a key</a></li>
101
102 </ul>
103
104
105 </ul>
106 </li>
107 <li class="">
108
109 <a class="" href="../Server-requirements/">Server requirements</a>
110 </li>
111 <li class="">
112
113 <a class="" href="../Server-configuration/">Server configuration</a>
114 </li>
115 <li class="">
116
117 <a class="" href="../Server-security/">Server security</a>
118 </li>
119 <li class="">
120
121 <a class="" href="../Shaarli-configuration/">Shaarli configuration</a>
122 </li>
123 <li class="">
124
125 <a class="" href="../Plugins/">Plugins</a>
126 </li>
127 </ul>
128 </li>
129
130 <li class="toctree-l1">
131
132 <span class="caption-text">Docker</span>
133 <ul class="subnav">
134 <li class="">
135
136 <a class="" href="../docker/docker-101/">Docker 101</a>
137 </li>
138 <li class="">
139
140 <a class="" href="../docker/shaarli-images/">Shaarli images</a>
141 </li>
142 <li class="">
143
144 <a class="" href="../docker/reverse-proxy-configuration/">Reverse proxy configuration</a>
145 </li>
146 <li class="">
147
148 <a class="" href="../docker/resources/">Docker resources</a>
149 </li>
150 </ul>
151 </li>
152
153 <li class="toctree-l1">
154
155 <span class="caption-text">Usage</span>
156 <ul class="subnav">
157 <li class="">
158
159 <a class="" href="../Features/">Features</a>
160 </li>
161 <li class="">
162
163 <a class="" href="../Bookmarklet/">Bookmarklet</a>
164 </li>
165 <li class="">
166
167 <a class="" href="../Browsing-and-searching/">Browsing and searching</a>
168 </li>
169 <li class="">
170
171 <a class="" href="../Firefox-share/">Firefox share</a>
172 </li>
173 <li class="">
174
175 <a class="" href="../RSS-feeds/">RSS feeds</a>
176 </li>
177 <li class="">
178
179 <a class="" href="../REST-API/">REST API</a>
180 </li>
181 </ul>
182 </li>
183
184 <li class="toctree-l1">
185
186 <span class="caption-text">How To</span>
187 <ul class="subnav">
188 <li class="">
189
190 <a class="" href="../Backup,-restore,-import-and-export/">Backup, restore, import and export</a>
191 </li>
192 <li class="">
193
194 <a class="" href="../Various-hacks/">Various hacks</a>
195 </li>
196 </ul>
197 </li>
198
199 <li class="toctree-l1">
200
201 <a class="" href="../Troubleshooting/">Troubleshooting</a>
202 </li>
203
204 <li class="toctree-l1">
205
206 <span class="caption-text">Development</span>
207 <ul class="subnav">
208 <li class="">
209
210 <a class="" href="../Development-guidelines/">Development guidelines</a>
211 </li>
212 <li class="">
213
214 <a class="" href="../Continuous-integration-tools/">Continuous integration tools</a>
215 </li>
216 <li class="">
217
218 <a class="" href="../GnuPG-signature/">GnuPG signature</a>
219 </li>
220 <li class="">
221
222 <a class="" href="../Coding-guidelines/">Coding guidelines</a>
223 </li>
224 <li class="">
225
226 <a class="" href="../Directory-structure/">Directory structure</a>
227 </li>
228 <li class="">
229
230 <a class="" href="../3rd-party-libraries/">3rd party libraries</a>
231 </li>
232 <li class="">
233
234 <a class="" href="../Plugin-System/">Plugin System</a>
235 </li>
236 <li class="">
237
238 <a class="" href="../Release-Shaarli/">Release Shaarli</a>
239 </li>
240 <li class="">
241
242 <a class="" href="../Versioning-and-Branches/">Versioning and Branches</a>
243 </li>
244 <li class="">
245
246 <a class="" href="../Security/">Security</a>
247 </li>
248 <li class="">
249
250 <a class="" href="../Static-analysis/">Static analysis</a>
251 </li>
252 <li class="">
253
254 <a class="" href="../Theming/">Theming</a>
255 </li>
256 <li class="">
257
258 <a class="" href="../Unit-tests/">Unit tests</a>
259 </li>
260 </ul>
261 </li>
262
263 <li class="toctree-l1">
264
265 <span class="caption-text">About</span>
266 <ul class="subnav">
267 <li class="">
268
269 <a class="" href="../FAQ/">FAQ</a>
270 </li>
271 <li class="">
272
273 <a class="" href="../Community-&-Related-software/">Community & Related software</a>
274 </li>
275 </ul>
276 </li>
277
278 </ul>
279 </div>
280 &nbsp;
281 </nav>
282
283 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
284
285
286 <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
287 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
288 <a href="..">Shaarli Documentation</a>
289 </nav>
290
291
292 <div class="wy-nav-content">
293 <div class="rst-content">
294 <div role="navigation" aria-label="breadcrumbs navigation">
295 <ul class="wy-breadcrumbs">
296 <li><a href="..">Docs</a> &raquo;</li>
297
298
299
300 <li>Setup &raquo;</li>
301
302
303
304 <li>Upgrade and migration</li>
305 <li class="wy-breadcrumbs-aside">
306
307 <a href="https://github.com/shaarli/Shaarli/edit/master/docs/Upgrade-and-migration.md"
308 class="icon icon-github"> Edit on GitHub</a>
309
310 </li>
311 </ul>
312 <hr/>
313 </div>
314 <div role="main">
315 <div class="section">
316
317 <h2 id="preparation">Preparation</h2>
318 <h3 id="note-your-current-version">Note your current version</h3>
319 <p>If anything goes wrong, it's important for us to know which version you're upgrading from.<br />
320 The current version is present in the <code>version.php</code> file.</p>
321 <h3 id="backup-your-data">Backup your data</h3>
322 <p>Shaarli stores all user data under the <code>data</code> directory:
323 - <code>data/config.php</code> - main configuration file
324 - <code>data/datastore.php</code> - bookmarked links
325 - <code>data/ipbans.php</code> - banned IP addresses
326 - <code>data/updates.txt</code> - contains all automatic update to the configuration and datastore files already run</p>
327 <p>See <a href="../Shaarli configuration">Shaarli configuration</a> for more information about Shaarli resources.</p>
328 <p>It is recommended to backup this repository <em>before</em> starting updating/upgrading Shaarli:
329 - users with SSH access: copy or archive the directory to a temporary location
330 - users with FTP access: download a local copy of your Shaarli installation using your favourite client</p>
331 <h3 id="migrating-data-from-a-previous-installation">Migrating data from a previous installation</h3>
332 <p>As all user data is kept under <code>data</code>, this is the only directory you need to worry about when migrating to a new installation, which corresponds to the following steps:</p>
333 <ul>
334 <li>backup the <code>data</code> directory</li>
335 <li>install or update Shaarli:<ul>
336 <li>fresh installation - see <a href="../Download and installation">Download and installation</a></li>
337 <li>update - see the following sections</li>
338 </ul>
339 </li>
340 <li>check or restore the <code>data</code> directory</li>
341 </ul>
342 <h2 id="recommended-upgrading-from-release-archives">Recommended : Upgrading from release archives</h2>
343 <p>All tagged revisions can be downloaded as tarballs or ZIP archives from the <a href="https://github.com/shaarli/Shaarli/releases">releases</a> page.</p>
344 <p>We recommend that you use the latest release tarball with the <code>-full</code> suffix. It contains the dependencies, please read <a href="../Download and installation">Download and installation</a> for <code>git</code> complete instructions.</p>
345 <p>Once downloaded, extract the archive locally and update your remote installation (e.g. via FTP) -be sure you keep the content of the <code>data</code> directory!</p>
346 <p>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 <code>data/config.json.php</code> (see <a href="../Shaarli configuration">Shaarli configuration</a> for more details).</p>
347 <h2 id="upgrading-with-git">Upgrading with Git</h2>
348 <h3 id="updating-a-community-shaarli">Updating a community Shaarli</h3>
349 <p>If you have installed Shaarli from the <a href="../Download#clone-with-git-recommended">community Git repository</a>, simply <a href="https://www.git-scm.com/docs/git-pull">pull new changes</a> from your local clone:</p>
350 <pre><code class="bash">$ cd /path/to/shaarli
351 $ git pull
352
353 From github.com:shaarli/Shaarli
354 * branch master -&gt; FETCH_HEAD
355 Updating ebd67c6..521f0e6
356 Fast-forward
357 application/Url.php | 1 +
358 shaarli_version.php | 2 +-
359 tests/Url/UrlTest.php | 1 +
360 3 files changed, 3 insertions(+), 1 deletion(-)
361 </code></pre>
362
363 <p>Shaarli &gt;= <code>v0.8.x</code>: install/update third-party PHP dependencies using <a href="https://getcomposer.org/">Composer</a>:</p>
364 <pre><code class="bash">$ composer install --no-dev
365
366 Loading composer repositories with package information
367 Updating dependencies
368 - Installing shaarli/netscape-bookmark-parser (v1.0.1)
369 Downloading: 100%
370 </code></pre>
371
372 <h3 id="migrating-and-upgrading-from-sebsauvages-repository">Migrating and upgrading from Sebsauvage's repository</h3>
373 <p>If you have installed Shaarli from <a href="https://github.com/sebsauvage/Shaarli">Sebsauvage's original Git repository</a>, you can use <a href="https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes">Git remotes</a> to update your working copy.</p>
374 <p>The following guide assumes that:
375 - you have a basic knowledge of Git <a href="https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell">branching</a> and <a href="https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes">remote repositories</a>
376 - the default remote is named <code>origin</code> and points to Sebsauvage's repository
377 - the current branch is <code>master</code>
378 - if you have personal branches containing customizations, you will need to <a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">rebase them</a> 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!
379 - the working copy is clean:
380 - no versioned file has been locally modified
381 - no untracked files are present</p>
382 <h4 id="step-0-show-repository-information">Step 0: show repository information</h4>
383 <pre><code class="bash">$ cd /path/to/shaarli
384
385 $ git remote -v
386 origin https://github.com/sebsauvage/Shaarli (fetch)
387 origin https://github.com/sebsauvage/Shaarli (push)
388
389 $ git branch -vv
390 * master 029f75f [origin/master] Update README.md
391
392 $ git status
393 On branch master
394 Your branch is up-to-date with 'origin/master'.
395 nothing to commit, working directory clean
396 </code></pre>
397
398 <h4 id="step-1-update-git-remotes">Step 1: update Git remotes</h4>
399 <pre><code>$ git remote rename origin sebsauvage
400 $ git remote -v
401 sebsauvage https://github.com/sebsauvage/Shaarli (fetch)
402 sebsauvage https://github.com/sebsauvage/Shaarli (push)
403
404 $ git remote add origin https://github.com/shaarli/Shaarli
405 $ git fetch origin
406
407 remote: Counting objects: 3015, done.
408 remote: Compressing objects: 100% (19/19), done.
409 remote: Total 3015 (delta 446), reused 457 (delta 446), pack-reused 2550
410 Receiving objects: 100% (3015/3015), 2.59 MiB | 918.00 KiB/s, done.
411 Resolving deltas: 100% (1899/1899), completed with 48 local objects.
412 From https://github.com/shaarli/Shaarli
413 * [new branch] master -&gt; origin/master
414 * [new branch] stable -&gt; origin/stable
415 [...]
416 * [new tag] v0.6.4 -&gt; v0.6.4
417 * [new tag] v0.7.0 -&gt; v0.7.0
418 </code></pre>
419
420 <h4 id="step-2-use-the-stable-community-branch">Step 2: use the stable community branch</h4>
421 <pre><code class="bash">$ git checkout origin/stable -b stable
422 Branch stable set up to track remote branch stable from origin.
423 Switched to a new branch 'stable'
424
425 $ git branch -vv
426 master 029f75f [sebsauvage/master] Update README.md
427 * stable 890afc3 [origin/stable] Merge pull request #509 from ArthurHoaro/v0.6.5
428 </code></pre>
429
430 <p>Shaarli &gt;= <code>v0.8.x</code>: install/update third-party PHP dependencies using <a href="https://getcomposer.org/">Composer</a>:</p>
431 <pre><code class="bash">$ composer install --no-dev
432
433 Loading composer repositories with package information
434 Updating dependencies
435 - Installing shaarli/netscape-bookmark-parser (v1.0.1)
436 Downloading: 100%
437 </code></pre>
438
439 <p>Optionally, you can delete information related to the legacy version:</p>
440 <pre><code class="bash">$ git branch -D master
441 Deleted branch master (was 029f75f).
442
443 $ git remote remove sebsauvage
444
445 $ git remote -v
446 origin https://github.com/shaarli/Shaarli (fetch)
447 origin https://github.com/shaarli/Shaarli (push)
448
449 $ git gc
450 Counting objects: 3317, done.
451 Delta compression using up to 8 threads.
452 Compressing objects: 100% (1237/1237), done.
453 Writing objects: 100% (3317/3317), done.
454 Total 3317 (delta 2050), reused 3301 (delta 2034)to
455 </code></pre>
456
457 <h4 id="step-3-configuration">Step 3: configuration</h4>
458 <p>After migrating, access your fresh Shaarli installation from a web browser; the configuration will then be automatically updated, and new settings added to <code>data/config.php</code> (see <a href="../Shaarli configuration">Shaarli configuration</a> for more details).</p>
459 <h2 id="troubleshooting">Troubleshooting</h2>
460 <p>If the solutions provided here doesn't work, please open an issue specifying which version you're upgrading from and to.</p>
461 <h3 id="you-must-specify-an-integer-as-a-key">You must specify an integer as a key</h3>
462 <p>In <code>v0.8.1</code> we changed how link keys are handled (from timestamps to incremental integers).
463 Take a look at <code>data/updates.txt</code> content.</p>
464 <h4 id="updatestxt-contains-updatemethoddatastoreids"><code>updates.txt</code> contains <code>updateMethodDatastoreIds</code></h4>
465 <p>Try to delete it and refresh your page while being logged in.</p>
466 <h4 id="updatestxt-doesnt-exists-or-doesnt-contain-updatemethoddatastoreids"><code>updates.txt</code> doesn't exists or doesn't contain <code>updateMethodDatastoreIds</code></h4>
467 <ol>
468 <li>Create <code>data/updates.txt</code> if it doesn't exist.</li>
469 <li>Paste this string in the update file <code>;updateMethodRenameDashTags;</code></li>
470 <li>Login to Shaarli.</li>
471 <li>Delete the update file.</li>
472 <li>Refresh.</li>
473 </ol>
474
475 </div>
476 </div>
477 <footer>
478
479 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
480
481 <a href="../Server-requirements/" class="btn btn-neutral float-right" title="Server requirements">Next <span class="icon icon-circle-arrow-right"></span></a>
482
483
484 <a href="../Download-and-Installation/" class="btn btn-neutral" title="Download and Installation"><span class="icon icon-circle-arrow-left"></span> Previous</a>
485
486 </div>
487
488
489 <hr/>
490
491 <div role="contentinfo">
492 <!-- Copyright etc -->
493
494 </div>
495
496 Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
497 </footer>
498
499 </div>
500 </div>
501
502 </section>
503
504 </div>
505
506 <div class="rst-versions" role="note" style="cursor: pointer">
507 <span class="rst-current-version" data-toggle="rst-current-version">
508
509 <a href="https://github.com/shaarli/Shaarli" class="fa fa-github" style="float: left; color: #fcfcfc"> GitHub</a>
510
511
512 <span><a href="../Download-and-Installation/" style="color: #fcfcfc;">&laquo; Previous</a></span>
513
514
515 <span style="margin-left: 15px"><a href="../Server-requirements/" style="color: #fcfcfc">Next &raquo;</a></span>
516
517 </span>
518 </div>
519 <script src="../js/theme.js"></script>
520
521 </body>
522 </html>