Is it possible, after tuning Discourse on local computer, to export all settings into file and upload them into production?
Thanks.
Is it possible, after tuning Discourse on local computer, to export all settings into file and upload them into production?
Thanks.
I guess probably you can export your settings from DB.
discourse=>\dt
...
...
public | single_sign_on_records | table | discourse
public | site_customizations | table | discourse
public | site_settings | table | discourse
public | stylesheet_cache | table | discourse
...
...
Notice site_settings table. You can also take this data from your backup. It already have a dump of your database inside it.
Then all you need to do is restore this table to your server from your local dump. ![]()
Courtesy of @blake we now have rake tasks to export/import site settings:
rake site_settings:export > settings.yml
rake site_settings:import < settings.yml
For those who do not have access to rake tasks, I also have contributed a settings uploader that uses the API: GitHub - pfaffman/discourse-settings-uploader: Install a Discourse settings JSON file to a site
Hello,
I’ve used discourse-settings-uploader to upload site_settings.json file from the GitHub Jay mentioned. I get this error when I run it:
./discourse-settings-uploader:39:in `<main>': undefined method `each' for nil:NilClass (NoMethodError)
line39: settings['site_settings'].each do |setting|
line40: jsetting (setting) unless setting['value'] == setting['default']
line41: end
I used an API key for “All Users” and used “system” when I ran discourse-settings-uploader.
Any thoughts?
Para referĂŞncia futura, alguns problemas que tive ao usar discourse-settings-uploader, recebendo erros 301:
./discourse-settings-uploader community.mysite.com 22f7d44321ae2365d3e3a5e9224524ba0e7302bd75ed06bfbh31ed5090ec6d3b system site-settings.json
SiteSettingtitle="Mysite"
E! 301 Moved Permanently
Recebo esse erro uma vez para cada configuração. Mas consigo acessar o site com sucesso nesses URLs. Então descobri que o problema é que está usando http, e isso está desabilitado.
EntĂŁo agora adicionei https ao nome do meu site e recebi um erro diferente:
SiteSettingtitle="My sIte"
E! SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)
something's wrong with https://community.mysite.com/admin/site_settings/title {"title"=>"Mysite", :api_key=>"22f7d44321ae2365d3e3a5e9224524ba0e7302bd75ed06bfbh31ed5090ec6d3b ec6d3b", :api_username=>"system"}
EntĂŁo isso se resume a uma configuração local deficiente de certificados raiz, parece. Poderia perder uma tarde com isso, mas em vez disso, desativei verify_ssl. É muito inseguro e coisas terrĂveis vĂŁo acontecer com vocĂŞ, seus filhos e os filhos dos seus filhos, mas, neste caso, simplesmente nĂŁo me importei.
Então, no script do uploader, adicionei este método:
def put_no_ssl(url, payload, headers={}, &block)
RestClient::Request.execute(method: :put, url: url, :payload => payload, headers: headers, verify_ssl: false, &block)
end
E abaixo, mudei a chamada de
r = RestClient.put(url, my_hash)
para
r = put_no_ssl(url, my_hash)
E funcionou! ![]()
![]()
Olá, comunidade,
Preciso exportar as configurações do site da produção para o staging. Encontrei esta instrução: Discourse-Settings Uploader, criei um arquivo JSON com as configurações, mas não tenho como importá-lo. Não sei onde posso executar este comando:
./discourse-settings-uploader HOSTURL API_KEY API_USER SETTINGS_FILE
Deve ser feito via terminal? Meu cliente disse que eles usam um Discourse comunitário e não têm acesso ao terminal. O que isso significa? Qual é a melhor maneira de resolver meu problema? Sou bastante novo nisso, então preciso da sua ajuda.
Obrigado antecipadamente.
DĂŞ uma olhada em Backup only Site Settings - #5 by pfaffman. VocĂŞ precisa baixar o script do GitHub e ter o Ruby instalado.
rake site_settings:import < settings.yml
SĂł queria mencionar a versĂŁo Docker deste comando:
d/rake "site_settings:import < settings.yml"
caso vocĂŞ receba
O dispositivo de entrada nĂŁo Ă© um TTY
Olá @pfaffman
Tentei exatamente como indicado… ./discourse-settings-uploader https://discourse.example.com d35989078a system site_settings.json
Mas meu script falha e nĂŁo tenho certeza do motivo ou de como corrigir.
Ele retorna E! 404 Not Found para cada configuração.
Removi sua captura de tela, pois ela inclui sua chave de API. Sinta-se Ă vontade para adicionar outra captura que nĂŁo contenha (ou que ofusque) os dados sensĂveis. VocĂŞ tambĂ©m deve rotacionar a chave, já que ela ficou pĂşblica e deve ser tratada como comprometida.
Obrigado pelo acompanhamento imediato. A partir de agora, cuidarei de tais práticas.
Se você estiver recebendo um erro 404, sua chave de API está incorreta ou não está onde o script pode encontrá-la.
Verifiquei isso. E todas as minhas APIs estĂŁo funcionando com a mesma chave.
E tenho certeza de que o script deve estar procurando no local correto, pois a instrução de log tem URLs como
{url}/admin/site_settings/title
{url}/admin/site_settings/site_description
Baixei o site_settings.json de um site e agora estou tentando enviar as configurações para um site2 existente. Devo fazer alguma edição no site_settings.json que baixei?
Estranho. Desculpe, mas essa é a melhor resposta gratuita que posso dar. Você pode me enviar uma mensagem se tiver um orçamento.
Existe uma tarefa de rake que vocĂŞ pode tentar se estiver auto-hospedado em ambos os sites.
Não uso esse script mais atualmente. Pode ser que algo no Discourse tenha mudado, mas duvido. Se você tem certeza de que está usando a chave de API do site para o qual está tentando escrever, então não tenho nenhuma suposição.
Tentei usar rake site_settings:export > settings.yml. Percebi que as tags e os grupos de tags que configurei no meu servidor Discourse nĂŁo foram exportados. Por que isso aconteceu?
Tags são tags, não configurações do site. Não tenho conhecimento de nenhuma maneira de migrar tags.
Existe uma maneira de também exportar as configurações para plugins componentes de tema?