]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - doc/html/Upgrade-and-migration/index.html
642942bfb8c89510add1cb54bc0cd14df0e81100
[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-101/">Docker 101</a>
137 </li>
138 <li class="">
139
140 <a class="" href="../Shaarli-images/">Shaarli images</a>
141 </li>
142 <li class="">
143
144 <a class="" href="../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="../Copy-an-existing-installation-over-SSH-and-serve-it-locally/">Copy an existing installation over SSH and serve it locally</a>
195 </li>
196 <li class="">
197
198 <a class="" href="../Create-and-serve-multiple-Shaarlis-(farm)/">Create and serve multiple Shaarlis (farm)</a>
199 </li>
200 <li class="">
201
202 <a class="" href="../Download-CSS-styles-from-an-OPML-list/">Download CSS styles from an OPML list</a>
203 </li>
204 <li class="">
205
206 <a class="" href="../Datastore-hacks/">Datastore hacks</a>
207 </li>
208 </ul>
209 </li>
210
211 <li class="toctree-l1">
212
213 <a class="" href="../Troubleshooting/">Troubleshooting</a>
214 </li>
215
216 <li class="toctree-l1">
217
218 <span class="caption-text">Development</span>
219 <ul class="subnav">
220 <li class="">
221
222 <a class="" href="../Development-guidelines/">Development guidelines</a>
223 </li>
224 <li class="">
225
226 <a class="" href="../Continuous-integration-tools/">Continuous integration tools</a>
227 </li>
228 <li class="">
229
230 <a class="" href="../GnuPG-signature/">GnuPG signature</a>
231 </li>
232 <li class="">
233
234 <a class="" href="../Coding-guidelines/">Coding guidelines</a>
235 </li>
236 <li class="">
237
238 <a class="" href="../Directory-structure/">Directory structure</a>
239 </li>
240 <li class="">
241
242 <a class="" href="../3rd-party-libraries/">3rd party libraries</a>
243 </li>
244 <li class="">
245
246 <a class="" href="../Plugin-System/">Plugin System</a>
247 </li>
248 <li class="">
249
250 <a class="" href="../Release-Shaarli/">Release Shaarli</a>
251 </li>
252 <li class="">
253
254 <a class="" href="../Versioning-and-Branches/">Versioning and Branches</a>
255 </li>
256 <li class="">
257
258 <a class="" href="../Security/">Security</a>
259 </li>
260 <li class="">
261
262 <a class="" href="../Static-analysis/">Static analysis</a>
263 </li>
264 <li class="">
265
266 <a class="" href="../Theming/">Theming</a>
267 </li>
268 <li class="">
269
270 <a class="" href="../Unit-tests/">Unit tests</a>
271 </li>
272 </ul>
273 </li>
274
275 <li class="toctree-l1">
276
277 <span class="caption-text">About</span>
278 <ul class="subnav">
279 <li class="">
280
281 <a class="" href="../FAQ/">FAQ</a>
282 </li>
283 <li class="">
284
285 <a class="" href="../Community-&-Related-software/">Community & Related software</a>
286 </li>
287 </ul>
288 </li>
289
290 </ul>
291 </div>
292 &nbsp;
293 </nav>
294
295 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
296
297
298 <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
299 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
300 <a href="..">Shaarli Documentation</a>
301 </nav>
302
303
304 <div class="wy-nav-content">
305 <div class="rst-content">
306 <div role="navigation" aria-label="breadcrumbs navigation">
307 <ul class="wy-breadcrumbs">
308 <li><a href="..">Docs</a> &raquo;</li>
309
310
311
312 <li>Setup &raquo;</li>
313
314
315
316 <li>Upgrade and migration</li>
317 <li class="wy-breadcrumbs-aside">
318
319 <a href="https://github.com/shaarli/Shaarli/edit/master/docs/Upgrade-and-migration.md"
320 class="icon icon-github"> Edit on GitHub</a>
321
322 </li>
323 </ul>
324 <hr/>
325 </div>
326 <div role="main">
327 <div class="section">
328
329 <h2 id="preparation">Preparation</h2>
330 <h3 id="note-your-current-version">Note your current version</h3>
331 <p>If anything goes wrong, it's important for us to know which version you're upgrading from.<br />
332 The current version is present in the <code>version.php</code> file.</p>
333 <h3 id="backup-your-data">Backup your data</h3>
334 <p>Shaarli stores all user data under the <code>data</code> directory:
335 - <code>data/config.php</code> - main configuration file
336 - <code>data/datastore.php</code> - bookmarked links
337 - <code>data/ipbans.php</code> - banned IP addresses
338 - <code>data/updates.txt</code> - contains all automatic update to the configuration and datastore files already run</p>
339 <p>See <a href="../Shaarli configuration">Shaarli configuration</a> for more information about Shaarli resources.</p>
340 <p>It is recommended to backup this repository <em>before</em> starting updating/upgrading Shaarli:
341 - users with SSH access: copy or archive the directory to a temporary location
342 - users with FTP access: download a local copy of your Shaarli installation using your favourite client</p>
343 <h3 id="migrating-data-from-a-previous-installation">Migrating data from a previous installation</h3>
344 <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>
345 <ul>
346 <li>backup the <code>data</code> directory</li>
347 <li>install or update Shaarli:<ul>
348 <li>fresh installation - see <a href="../Download and installation">Download and installation</a></li>
349 <li>update - see the following sections</li>
350 </ul>
351 </li>
352 <li>check or restore the <code>data</code> directory</li>
353 </ul>
354 <h2 id="recommended-upgrading-from-release-archives">Recommended : Upgrading from release archives</h2>
355 <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>
356 <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>
357 <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>
358 <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>
359 <h2 id="upgrading-with-git">Upgrading with Git</h2>
360 <h3 id="updating-a-community-shaarli">Updating a community Shaarli</h3>
361 <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>
362 <pre><code class="bash">$ cd /path/to/shaarli
363 $ git pull
364
365 From github.com:shaarli/Shaarli
366 * branch master -&gt; FETCH_HEAD
367 Updating ebd67c6..521f0e6
368 Fast-forward
369 application/Url.php | 1 +
370 shaarli_version.php | 2 +-
371 tests/Url/UrlTest.php | 1 +
372 3 files changed, 3 insertions(+), 1 deletion(-)
373 </code></pre>
374
375 <p>Shaarli &gt;= <code>v0.8.x</code>: install/update third-party PHP dependencies using <a href="https://getcomposer.org/">Composer</a>:</p>
376 <pre><code class="bash">$ composer install --no-dev
377
378 Loading composer repositories with package information
379 Updating dependencies
380 - Installing shaarli/netscape-bookmark-parser (v1.0.1)
381 Downloading: 100%
382 </code></pre>
383
384 <h3 id="migrating-and-upgrading-from-sebsauvages-repository">Migrating and upgrading from Sebsauvage's repository</h3>
385 <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>
386 <p>The following guide assumes that:
387 - 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>
388 - the default remote is named <code>origin</code> and points to Sebsauvage's repository
389 - the current branch is <code>master</code>
390 - 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!
391 - the working copy is clean:
392 - no versioned file has been locally modified
393 - no untracked files are present</p>
394 <h4 id="step-0-show-repository-information">Step 0: show repository information</h4>
395 <pre><code class="bash">$ cd /path/to/shaarli
396
397 $ git remote -v
398 origin https://github.com/sebsauvage/Shaarli (fetch)
399 origin https://github.com/sebsauvage/Shaarli (push)
400
401 $ git branch -vv
402 * master 029f75f [origin/master] Update README.md
403
404 $ git status
405 On branch master
406 Your branch is up-to-date with 'origin/master'.
407 nothing to commit, working directory clean
408 </code></pre>
409
410 <h4 id="step-1-update-git-remotes">Step 1: update Git remotes</h4>
411 <pre><code>$ git remote rename origin sebsauvage
412 $ git remote -v
413 sebsauvage https://github.com/sebsauvage/Shaarli (fetch)
414 sebsauvage https://github.com/sebsauvage/Shaarli (push)
415
416 $ git remote add origin https://github.com/shaarli/Shaarli
417 $ git fetch origin
418
419 remote: Counting objects: 3015, done.
420 remote: Compressing objects: 100% (19/19), done.
421 remote: Total 3015 (delta 446), reused 457 (delta 446), pack-reused 2550
422 Receiving objects: 100% (3015/3015), 2.59 MiB | 918.00 KiB/s, done.
423 Resolving deltas: 100% (1899/1899), completed with 48 local objects.
424 From https://github.com/shaarli/Shaarli
425 * [new branch] master -&gt; origin/master
426 * [new branch] stable -&gt; origin/stable
427 [...]
428 * [new tag] v0.6.4 -&gt; v0.6.4
429 * [new tag] v0.7.0 -&gt; v0.7.0
430 </code></pre>
431
432 <h4 id="step-2-use-the-stable-community-branch">Step 2: use the stable community branch</h4>
433 <pre><code class="bash">$ git checkout origin/stable -b stable
434 Branch stable set up to track remote branch stable from origin.
435 Switched to a new branch 'stable'
436
437 $ git branch -vv
438 master 029f75f [sebsauvage/master] Update README.md
439 * stable 890afc3 [origin/stable] Merge pull request #509 from ArthurHoaro/v0.6.5
440 </code></pre>
441
442 <p>Shaarli &gt;= <code>v0.8.x</code>: install/update third-party PHP dependencies using <a href="https://getcomposer.org/">Composer</a>:</p>
443 <pre><code class="bash">$ composer install --no-dev
444
445 Loading composer repositories with package information
446 Updating dependencies
447 - Installing shaarli/netscape-bookmark-parser (v1.0.1)
448 Downloading: 100%
449 </code></pre>
450
451 <p>Optionally, you can delete information related to the legacy version:</p>
452 <pre><code class="bash">$ git branch -D master
453 Deleted branch master (was 029f75f).
454
455 $ git remote remove sebsauvage
456
457 $ git remote -v
458 origin https://github.com/shaarli/Shaarli (fetch)
459 origin https://github.com/shaarli/Shaarli (push)
460
461 $ git gc
462 Counting objects: 3317, done.
463 Delta compression using up to 8 threads.
464 Compressing objects: 100% (1237/1237), done.
465 Writing objects: 100% (3317/3317), done.
466 Total 3317 (delta 2050), reused 3301 (delta 2034)to
467 </code></pre>
468
469 <h4 id="step-3-configuration">Step 3: configuration</h4>
470 <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>
471 <h2 id="troubleshooting">Troubleshooting</h2>
472 <p>If the solutions provided here doesn't work, please open an issue specifying which version you're upgrading from and to.</p>
473 <h3 id="you-must-specify-an-integer-as-a-key">You must specify an integer as a key</h3>
474 <p>In <code>v0.8.1</code> we changed how link keys are handled (from timestamps to incremental integers).
475 Take a look at <code>data/updates.txt</code> content.</p>
476 <h4 id="updatestxt-contains-updatemethoddatastoreids"><code>updates.txt</code> contains <code>updateMethodDatastoreIds</code></h4>
477 <p>Try to delete it and refresh your page while being logged in.</p>
478 <h4 id="updatestxt-doesnt-exists-or-doesnt-contain-updatemethoddatastoreids"><code>updates.txt</code> doesn't exists or doesn't contain <code>updateMethodDatastoreIds</code></h4>
479 <ol>
480 <li>Create <code>data/updates.txt</code> if it doesn't exist.</li>
481 <li>Paste this string in the update file <code>;updateMethodRenameDashTags;</code></li>
482 <li>Login to Shaarli.</li>
483 <li>Delete the update file.</li>
484 <li>Refresh.</li>
485 </ol>
486
487 </div>
488 </div>
489 <footer>
490
491 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
492
493 <a href="../Server-requirements/" class="btn btn-neutral float-right" title="Server requirements">Next <span class="icon icon-circle-arrow-right"></span></a>
494
495
496 <a href="../Download-and-Installation/" class="btn btn-neutral" title="Download and Installation"><span class="icon icon-circle-arrow-left"></span> Previous</a>
497
498 </div>
499
500
501 <hr/>
502
503 <div role="contentinfo">
504 <!-- Copyright etc -->
505
506 </div>
507
508 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>.
509 </footer>
510
511 </div>
512 </div>
513
514 </section>
515
516 </div>
517
518 <div class="rst-versions" role="note" style="cursor: pointer">
519 <span class="rst-current-version" data-toggle="rst-current-version">
520
521 <a href="https://github.com/shaarli/Shaarli" class="fa fa-github" style="float: left; color: #fcfcfc"> GitHub</a>
522
523
524 <span><a href="../Download-and-Installation/" style="color: #fcfcfc;">&laquo; Previous</a></span>
525
526
527 <span style="margin-left: 15px"><a href="../Server-requirements/" style="color: #fcfcfc">Next &raquo;</a></span>
528
529 </span>
530 </div>
531 <script src="../js/theme.js"></script>
532
533 </body>
534 </html>