{"id":27298,"date":"2021-05-12T14:06:00","date_gmt":"2021-05-12T11:06:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27298"},"modified":"2021-10-18T04:14:56","modified_gmt":"2021-10-18T01:14:56","slug":"como-fazer-backup-do-aplicativo-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-backup-do-aplicativo-laravel\/","title":{"rendered":"Como fazer backup do aplicativo Laravel"},"content":{"rendered":"<p>Quer fazer ou agendar um backup do aplicativo Laravel? Manter o backup do banco de dados e do sistema de arquivos do Laravel sempre \u00e9 uma boa ideia. Voc\u00ea deve ter seu backup pronto a qualquer momento se algo der errado com seu servidor ou aplicativo. Neste artigo, estudamos como fazer backup do aplicativo Laravel com o banco de dados.<\/p>\n<p>Se voc\u00ea estiver executando um site WordPress, existem plug-ins como o <a href=\"https:\/\/updraftplus.com\/?afref=464\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Updraftplus,<\/a> que nos permite armazenar backups no servidor ou na nuvem. Mas quando se trata do Laravel, n\u00e3o existe um conceito como um plugin. No Laravel, precisamos instalar as bibliotecas e configur\u00e1-las.<\/p>\n<p><a href=\"https:\/\/github.com\/spatie\/laravel-backup\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Spatie<\/a> desenvolveu um pacote chamado laravel-backup que \u00e9 \u00fatil para armazenar backups do Laravel. Este pacote tamb\u00e9m oferece uma op\u00e7\u00e3o que pode agendar seu processo de backup.<\/p>\n<p>Dito isso, vamos dar uma olhada em como fazer backup do aplicativo Laravel com o banco de dados.<\/p>\n<h3>Come\u00e7ando<\/h3>\n<p>A \u00faltima vers\u00e3o deste pacote requer PHP 7.2 ou superior com o <a href=\"https:\/\/www.php.net\/manual\/en\/book.zip.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">m\u00f3dulo ZIP<\/a> e Laravel 5.7 ou superior. Se voc\u00ea est\u00e1 usando a vers\u00e3o antiga do Laravel, ent\u00e3o a <a href=\"https:\/\/docs.spatie.be\/laravel-backup\/v5\/introduction\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vers\u00e3o 5<\/a> e a <a href=\"https:\/\/docs.spatie.be\/laravel-backup\/v4\/introduction\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vers\u00e3o 4<\/a> deste pacote est\u00e3o dispon\u00edveis.<\/p>\n<p>Para este tutorial, estamos usando a <a href=\"https:\/\/docs.spatie.be\/laravel-backup\/v6\/introduction\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vers\u00e3o mais recente<\/a> desta biblioteca. Primeiramente, voc\u00ea precisa instalar o pacote executando o comando abaixo:<\/p>\n<pre><code>composer require spatie\/laravel-backup<\/code><\/pre>\n<p>Depois de instalar o pacote, execute o pr\u00f3ximo comando abaixo, que publicar\u00e1 o arquivo de configura\u00e7\u00e3o <code>config\/backup.php<\/code>.<\/p>\n<pre><code>php artisan vendor:publish --provider=\"SpatieBackupBackupServiceProvider\"<\/code><\/pre>\n<p>V\u00e1 para o diret\u00f3rio de configura\u00e7\u00e3o e abra o <code>backup.php<\/code>no editor.<\/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>Neste arquivo, voc\u00ea precisa substituir 2 marcadores GIVE_PREFIX_HERE e YOUR_EMAIL_ADDRESS. Para GIVE_PREFIX_HERE voc\u00ea pode dar qualquer prefixo como o nome do projeto. Este \u00e9 apenas um nome de prefixo para o arquivo zip de backup.<\/p>\n<p>Um usu\u00e1rio tamb\u00e9m pode incluir e excluir os diret\u00f3rios para backup. Para o include, passamos o valor base_path() e para os valores da op\u00e7\u00e3o de exclus\u00e3o s\u00e3o base_path (&#8216;vendor&#8217;), base_path (&#8216;node_modules&#8217;). Isso significa n\u00e3o incluir as pastas vendor e nod_modules no backup final.<\/p>\n<p>Tamb\u00e9m estamos passando um valor de disco como &#8216;local&#8217;. Fazendo isso, nosso backup ser\u00e1 armazenado na <code>storage\/app\/Laravel<\/code>pasta. Tamb\u00e9m podemos armazenar nossos backups em armazenamento externo, como s3, Rackspace, SFTP, etc. Essas configura\u00e7\u00f5es de armazenamento externo requerem alguns passos adicionais para configurar com o sistema de arquivos Laravel. Abordaremos mais sobre isso em outro artigo futuro. Se voc\u00ea est\u00e1 procurando por armazenamento externo, por favor, leia a <a href=\"https:\/\/laravel.com\/docs\/5.8\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documenta\u00e7\u00e3o<\/a> do <a href=\"https:\/\/laravel.com\/docs\/5.8\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel<\/a>.<\/p>\n<h3>Backup do aplicativo Laravel<\/h3>\n<p>At\u00e9 agora, conclu\u00edmos a instala\u00e7\u00e3o e configura\u00e7\u00e3o. Agora estamos todos prontos para executar nosso primeiro backup. Abra o terminal no diret\u00f3rio raiz do seu projeto e execute o comando:<\/p>\n<pre><code>php artisan backup:run<\/code><\/pre>\n<p>O comando acima criaria um backup do aplicativo Laravel. Voc\u00ea encontrar\u00e1 o zip do backup na pasta <code>storage\/app\/Laravel<\/code>. O zip de backup cont\u00e9m seus arquivos de aplicativo, pastas e armazenamento de banco de dados nele.<\/p>\n<p>Esta biblioteca tamb\u00e9m nos permite agendar um processo de backup. Podemos automatizar nossa tarefa de backup. Para isso, voc\u00ea deve escrever o c\u00f3digo abaixo no <code>app\/Console\/Kernel.php<\/code>arquivo.<\/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>Definimos backup di\u00e1rio \u00e0s 06:00. O usu\u00e1rio pode alterar este tempo de acordo com sua necessidade.<\/p>\n<p>\u00c9 isso! \u00c9 tudo uma quest\u00e3o de fazer um backup do aplicativo Laravel. \u00c9 altamente recomend\u00e1vel fazer backups regularmente e manter seu aplicativo protegido de quaisquer circunst\u00e2ncias prejudiciais.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-backup-do-aplicativo-laravel-e-armazena-lo-no-amazon-s3\/\" title=\"Como fazer backup do aplicativo Laravel e armazen\u00e1-lo no Amazon S3\">Como fazer backup do aplicativo Laravel e armazen\u00e1-lo no Amazon S3<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/enviando-e-mail-via-servidor-smtp-do-gmail-no-laravel\/\" title=\"Enviando e-mail via servidor SMTP do Gmail no Laravel\">Enviando e-mail via servidor SMTP do Gmail no Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-instalar-e-usar-o-ckeditor-no-laravel\/\" title=\"Como instalar e usar o CKEditor no Laravel\">Como instalar e usar o CKEditor no Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, discutimos uma solu\u00e7\u00e3o que faz backup do aplicativo Laravel com o banco de dados? Depois de instalar e configurar o pacote, podemos fazer um backup executando o comando. Tamb\u00e9m podemos agendar nosso backup.<\/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":[502],"tags":[848],"class_list":["post-27298","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27298"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27298\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21761"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}