{"id":27629,"date":"2021-05-12T13:49:00","date_gmt":"2021-05-12T10:49:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27629"},"modified":"2021-10-18T03:47:46","modified_gmt":"2021-10-18T00:47:46","slug":"jak-wykonac-kopie-zapasowa-aplikacji-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-wykonac-kopie-zapasowa-aplikacji-laravel\/","title":{"rendered":"Jak wykona\u0107 kopi\u0119 zapasow\u0105 aplikacji Laravel"},"content":{"rendered":"<p>Chcesz wykona\u0107 lub zaplanowa\u0107 kopi\u0119 zapasow\u0105 aplikacji Laravel? Utrzymywanie kopii zapasowej bazy danych i systemu plik\u00f3w Laravela zawsze jest dobrym pomys\u0142em. Powiniene\u015b zawsze mie\u0107 gotow\u0105 kopi\u0119 zapasow\u0105, je\u015bli co\u015b p\u00f3jdzie nie tak z serwerem lub aplikacj\u0105. W tym artykule dowiemy si\u0119, jak wykona\u0107 kopi\u0119 zapasow\u0105 aplikacji Laravel wraz z baz\u0105 danych.<\/p>\n<p>Je\u015bli prowadzisz witryn\u0119 WordPress, istniej\u0105 wtyczki takie jak <a href=\"https:\/\/updraftplus.com\/?afref=464\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Updraftplus,<\/a> kt\u00f3re pozwalaj\u0105 nam przechowywa\u0107 kopie zapasowe na serwerze lub w chmurze. Ale je\u015bli chodzi o Laravela, nie ma koncepcji takiej jak wtyczka. W Laravelu musimy zainstalowa\u0107 biblioteki i je skonfigurowa\u0107.<\/p>\n<p><a href=\"https:\/\/github.com\/spatie\/laravel-backup\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Spatie<\/a> opracowa\u0142 pakiet o nazwie laravel-backup, kt\u00f3ry jest przydatny do przechowywania kopii zapasowych Laravel. Ten pakiet zawiera r\u00f3wnie\u017c opcj\u0119, kt\u00f3ra umo\u017cliwia zaplanowanie procesu tworzenia kopii zapasowej.<\/p>\n<p>Bior\u0105c to pod uwag\u0119, przyjrzyjmy si\u0119, jak wykona\u0107 kopi\u0119 zapasow\u0105 aplikacji Laravel z baz\u0105 danych.<\/p>\n<h3>Pierwsze kroki<\/h3>\n<p>Najnowsza wersja tego pakietu wymaga PHP 7.2 lub nowszego z <a href=\"https:\/\/www.php.net\/manual\/en\/book.zip.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">modu\u0142em ZIP<\/a> oraz Laravel 5.7 lub nowszego. Je\u015bli u\u017cywasz starej wersji Laravela, dost\u0119pne s\u0105 <a href=\"https:\/\/docs.spatie.be\/laravel-backup\/v5\/introduction\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wersje 5<\/a> i <a href=\"https:\/\/docs.spatie.be\/laravel-backup\/v4\/introduction\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">4<\/a> tego pakietu.<\/p>\n<p>W tym samouczku u\u017cywamy <a href=\"https:\/\/docs.spatie.be\/laravel-backup\/v6\/introduction\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">najnowszej wersji<\/a> tej biblioteki. Najpierw musisz zainstalowa\u0107 pakiet, uruchamiaj\u0105c poni\u017csze polecenie:<\/p>\n<pre><code>composer require spatie\/laravel-backup<\/code><\/pre>\n<p>Po zainstalowaniu pakietu uruchom nast\u0119pne polecenie poni\u017cej, kt\u00f3re opublikuje plik konfiguracyjny do <code>config\/backup.php<\/code>.<\/p>\n<pre><code>php artisan vendor:publish --provider=\"SpatieBackupBackupServiceProvider\"<\/code><\/pre>\n<p>Udaj si\u0119 do katalogu konfiguracyjnego i otw\u00f3rz <code>backup.php<\/code>w edytorze.<\/p>\n<pre><code>&lt;?php\n\u00a0\nreturn [\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.......\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'source' =&gt; [\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'files' =&gt; [\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* The list of directories and files that will be included in the backup.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'include' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0base_path(),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* These directories and files will be excluded from the backup.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* Directories used by the backup process will automatically be excluded.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'exclude' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0base_path('vendor'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0base_path('node_modules'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* Determines if symlinks should be followed.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'followLinks' =&gt; false,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.......\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'destination' =&gt; [\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* The filename prefix used for the backup zip file.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'filename_prefix' =&gt; 'GIVE_PREFIX_HERE',\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* The disk names on which the backups will be stored.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'disks' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'local',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0],\n\u00a0\n\u00a0\u00a0\u00a0\u00a0......\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* Here you can specify the notifiable to which the notifications should be sent. The default\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* notifiable will use the variables specified in this config file.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'notifiable' =&gt; SpatieBackupNotificationsNotifiable::class,\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'mail' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'to' =&gt; 'YOUR_EMAIL_ADDRESS',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\n\u00a0\u00a0\u00a0\u00a0......\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/pre>\n<p>W tym pliku musisz zast\u0105pi\u0107 2 symbole zast\u0119pcze GIVE_PREFIX_HERE i YOUR_EMAIL_ADDRESS. Dla GIVE_PREFIX_HERE mo\u017cesz poda\u0107 dowolny prefiks, taki jak nazwa twojego projektu. To jest tylko prefiks nazwy pliku zip kopii zapasowej.<\/p>\n<p>U\u017cytkownik mo\u017ce r\u00f3wnie\u017c do\u0142\u0105czy\u0107 i wykluczy\u0107 katalogi do kopii zapasowej. Dla include przekazali\u015bmy warto\u015b\u0107 base_path(), a dla opcji exclude warto\u015bci opcji to base_path(&#8217;vendor&#8217;), base_path(&#8217;node_modules&#8217;). Oznacza to, \u017ce w ostatecznej kopii zapasowej nie nale\u017cy uwzgl\u0119dnia\u0107 folder\u00f3w vendor i nod_modules.<\/p>\n<p>Przekazujemy r\u00f3wnie\u017c warto\u015b\u0107 dysk\u00f3w jako \u201elokaln\u0105&quot;. W ten spos\u00f3b nasza kopia zapasowa zostanie zapisana w <code>storage\/app\/Laravel<\/code>folderze. Mo\u017cemy r\u00f3wnie\u017c przechowywa\u0107 nasze kopie zapasowe w pami\u0119ci zewn\u0119trznej, takiej jak s3, Rackspace, SFTP itp. Te ustawienia pami\u0119ci zewn\u0119trznej wymagaj\u0105 dodatkowych krok\u00f3w, aby skonfigurowa\u0107 system plik\u00f3w Laravel. Wi\u0119cej na ten temat om\u00f3wimy w innym przysz\u0142ym artykule. Je\u015bli szukasz zewn\u0119trznej pami\u0119ci masowej, zapoznaj si\u0119 z <a href=\"https:\/\/laravel.com\/docs\/5.8\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentacj\u0105 Laravela<\/a>.<\/p>\n<h3>Kopia zapasowa aplikacji Laravel<\/h3>\n<p>Jak dot\u0105d zako\u0144czyli\u015bmy instalacj\u0119 i konfiguracj\u0119. Teraz wszyscy przygotowali\u015bmy si\u0119 do uruchomienia naszej pierwszej kopii zapasowej. Otw\u00f3rz terminal w katalogu g\u0142\u00f3wnym projektu i uruchom polecenie:<\/p>\n<pre><code>php artisan backup:run<\/code><\/pre>\n<p>Powy\u017csze polecenie utworzy kopi\u0119 zapasow\u0105 aplikacji Laravel. W folderze znajdziesz zip kopii zapasowej <code>storage\/app\/Laravel<\/code>. Kopia zapasowa zip zawiera pliki aplikacji, foldery i magazyn bazy danych.<\/p>\n<p>Ta biblioteka pozwala nam r\u00f3wnie\u017c zaplanowa\u0107 proces tworzenia kopii zapasowej. Mo\u017cemy zautomatyzowa\u0107 nasze zadanie tworzenia kopii zapasowej. W tym celu nale\u017cy w <code>app\/Console\/Kernel.php<\/code>pliku napisa\u0107 poni\u017cszy kod .<\/p>\n<pre><code>protected function schedule(Schedule $schedule)\n{\n\u00a0\u00a0\u00a0\u00a0$schedule-&gt;command('backup:run')-&gt;daily()-&gt;at('06:00');\n}<\/code><\/pre>\n<p>Codzienn\u0105 kopi\u0119 zapasow\u0105 ustawiamy o godzinie 06:00. U\u017cytkownik mo\u017ce zmieni\u0107 ten czas zgodnie z ich wymaganiami.<\/p>\n<p>Ot\u00f3\u017c \u200b\u200bto! Chodzi o wykonanie kopii zapasowej aplikacji Laravel. Zdecydowanie zalecamy regularne tworzenie kopii zapasowych i chronienie aplikacji przed wszelkimi szkodliwymi okoliczno\u015bciami.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-wykonac-kopie-zapasowa-aplikacji-laravel-i-przechowywac-ja-na-amazon-s3\/\" title=\"Jak wykona\u0107 kopi\u0119 zapasow\u0105 aplikacji Laravel i przechowywa\u0107 j\u0105 na Amazon S3?\">Jak wykona\u0107 kopi\u0119 zapasow\u0105 aplikacji Laravel i przechowywa\u0107 j\u0105 na Amazon S3?<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/wysylanie-wiadomosci-e-mail-przez-serwer-smtp-gmaila-w-laravel\/\" title=\"Wysy\u0142anie wiadomo\u015bci e-mail przez serwer SMTP Gmaila w Laravel\">Wysy\u0142anie wiadomo\u015bci e-mail przez serwer SMTP Gmaila w Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-zainstalowac-i-uzywac-ckeditor-w-laravel\/\" title=\"Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?\">Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule om\u00f3wimy rozwi\u0105zanie, kt\u00f3re wykonuje kopi\u0119 zapasow\u0105 aplikacji Laravel z baz\u0105 danych? Po zainstalowaniu i skonfigurowaniu pakietu mo\u017cemy wykona\u0107 kopi\u0119 zapasow\u0105 uruchamiaj\u0105c polecenie. Mo\u017cemy r\u00f3wnie\u017c zaplanowa\u0107 tworzenie kopii zapasowych.<\/p>\n","protected":false},"author":1,"featured_media":21761,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[501],"tags":[847],"class_list":["post-27629","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=27629"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27629\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21761"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=27629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=27629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=27629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}