# How can I import/export settings into a file?

**URL:** https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496
**Category:** Support
**Created:** [13. Oktober 2016 um 11:41 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496 "2016-10-13T11:41:59Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![mrded](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mrded/32/62438_2.png) [@mrded](https://meta.discourse.org/u/mrded)
#### Post date: [13. Oktober 2016 um 11:41 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/1 "2016-10-13T11:41:59Z")

</div>

Is it possible, after tuning Discourse on local computer, to export all settings into file and upload them into production?

Thanks.

---

<div class="post-metadata">

### Author: ![bek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bek/32/61660_2.png) [@bek](https://meta.discourse.org/u/bek)
#### Post date: [13. Oktober 2016 um 12:35 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/2 "2016-10-13T12:35:26Z")

</div>

I guess probably you can export your settings from DB.

```plaintext
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. 👍

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [17. März 2019 um 10:12 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/3 "2019-03-17T10:12:07Z")

</div>



---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [17. März 2019 um 10:46 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/4 "2019-03-17T10:46:29Z")

</div>

Courtesy of @blake we now have rake tasks to export/import site settings:

```plaintext
rake site_settings:export > settings.yml
rake site_settings:import < settings.yml

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [17. März 2019 um 14:04 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/6 "2019-03-17T14:04:34Z")

</div>

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 · GitHub](https://github.com/pfaffman/discourse-settings-uploader)

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://meta.discourse.org/u/alb)
#### Post date: [23. Mai 2019 um 23:31 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/7 "2019-05-23T23:31:16Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![pgr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pgr/32/156783_2.png) [@pgr](https://meta.discourse.org/u/pgr)
#### Post date: [22. September 2019 um 12:11 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/8 "2019-09-22T12:11:12Z")

</div>

Für zukünftige Referenz einige Probleme, die ich bei der Verwendung von `discourse-settings-uploader` hatte, wobei 301-Fehler auftraten:

```plaintext
./discourse-settings-uploader community.mysite.com 22f7d44321ae2365d3e3a5e9224524ba0e7302bd75ed06bfbh31ed5090ec6d3b system site-settings.json
SiteSettingtitle="Mysite"
E! 301 Moved Permanently

```

Ich erhalte diesen Fehler einmal pro Einstellung. Aber ich kann die Seite an diesen URLs erfolgreich durchsuchen. Also habe ich herausgefunden – es läuft über `http`, und das ist deaktiviert.

Also füge ich nun `https` zu meinem Situsnamen hinzu und erhalte einen anderen Fehler:

```plaintext
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"}

```

Das läuft also auf eine mangelhafte lokale Konfiguration der Root-Zertifikate hinaus, scheint es. Ich könnte losziehen und einen Nachmittag damit verschwenden, aber stattdessen habe ich `verify_ssl` deaktiviert. **Es ist sehr unsicher und schreckliche Dinge werden dir und deinen Kindern und den Kindern deiner Kinder widerfahren** – aber in diesem Fall war es mir einfach egal.

Also habe ich im Uploader-Skript diese Methode hinzugefügt:

```ruby
def put_no_ssl(url, payload, headers={}, &block)
  RestClient::Request.execute(method: :put, url: url, :payload => payload, headers: headers, verify_ssl: false, &block)
end

```

Und unten habe ich den Aufruf von

```ruby
r = RestClient.put(url, my_hash)

```

in

```ruby
r = put_no_ssl(url, my_hash)

```

geändert.  
Und es hat funktioniert! 🕶

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [28. September 2019 um 15:51 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/9 "2019-09-28T15:51:12Z")

</div>

> [@pgr](#):
>
> **Das ist sehr unsicher und schreckliche Dinge werden dir, deinen Kindern und den Kindern deiner Kinder widerfahren**

😱 👨‍👩‍👧‍👦

---

<div class="post-metadata">

### Author: ![Yana\_Nepyivoda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/yana_nepyivoda/32/172581_2.png) [@Yana\_Nepyivoda](https://meta.discourse.org/u/Yana_Nepyivoda)
#### Post date: [12. März 2020 um 15:50 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/10 "2020-03-12T15:50:10Z")

</div>

Hallo Community,  
ich muss die Seiteneinstellungen von der Produktionsumgebung in die Staging-Umgebung exportieren. Ich habe diese Anleitung „Discourse-Settings Uploader

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [12. März 2020 um 16:22 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/11 "2020-03-12T16:22:14Z")

</div>

Schau dir [Backup only Site Settings - #5 by pfaffman](https://meta.discourse.org/t/backup-only-site-settings/78150/5?u=pfaffman) an. Du musst das Skript von GitHub herunterladen und Ruby installiert haben.

---

<div class="post-metadata">

### Author: ![spirobel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spirobel/32/170908_2.png) [@spirobel](https://meta.discourse.org/u/spirobel)
#### Post date: [7. Oktober 2020 um 06:59 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/12 "2020-10-07T06:59:17Z")

</div>

`rake site_settings:import < settings.yml`  
Nur zur Info, hier ist die Docker-Version dieses Befehls:

```plaintext
d/rake "site_settings:import < settings.yml"

```

Falls folgende Meldung erscheint:

```plaintext
Das Eingabegerät ist kein TTY

```

---

<div class="post-metadata">

### Author: ![Ravi\_Teja\_Varma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ravi_teja_varma/32/195200_2.png) [@Ravi\_Teja\_Varma](https://meta.discourse.org/u/Ravi_Teja_Varma)
#### Post date: [18. Januar 2021 um 05:59 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/14 "2021-01-18T05:59:43Z")

</div>

Hey @pfaffman  
Ich habe es genau so versucht, wie angegeben… `./discourse-settings-uploader https://discourse.example.com d35989078a system site_settings.json`

Aber mein Skript schlägt fehl, und ich bin mir nicht sicher, warum und wie.  
Es meldet für jede Einstellung `E! 404 Not Found`.

---

<div class="post-metadata">

### Author: ![jomaxro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jomaxro/32/126216_2.png) [@jomaxro](https://meta.discourse.org/u/jomaxro)
#### Post date: [18. Januar 2021 um 09:02 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/15 "2021-01-18T09:02:11Z")

</div>

@Ravi_Teja_Varma,

Ich habe deinen Screenshot entfernt, da er deinen API-Schlüssel enthält. Du kannst gerne einen anderen Screenshot hinzufügen, der keine sensiblen Daten enthält oder diese verschleiert. Da der Schlüssel öffentlich war, solltest du ihn außerdem rotieren, da er als kompromittiert gilt.

---

<div class="post-metadata">

### Author: ![Ravi\_Teja\_Varma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ravi_teja_varma/32/195200_2.png) [@Ravi\_Teja\_Varma](https://meta.discourse.org/u/Ravi_Teja_Varma)
#### Post date: [18. Januar 2021 um 09:09 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/16 "2021-01-18T09:09:36Z")

</div>

Vielen Dank für die sofortige Rückmeldung. Ich werde solche Vorgehensweisen ab sofort beachten.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [18. Januar 2021 um 14:49 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/17 "2021-01-18T14:49:53Z")

</div>

Wenn Sie eine 404 erhalten, ist Ihr API-Schlüssel falsch oder nicht dort, wo das Skript ihn finden kann.

---

<div class="post-metadata">

### Author: ![Ravi\_Teja\_Varma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ravi_teja_varma/32/195200_2.png) [@Ravi\_Teja\_Varma](https://meta.discourse.org/u/Ravi_Teja_Varma)
#### Post date: [18. Januar 2021 um 16:12 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/18 "2021-01-18T16:12:46Z")

</div>

Ich habe das geprüft. Alle meine APIs funktionieren mit demselben Schlüssel. Und ich bin mir sicher, dass das Skript den richtigen Ort sucht, da die Log-Ausgaben URLs wie

```
{url}/admin/site_settings/title
{url}/admin/site_settings/site_description

```

enthalten.

Ich habe site\_settings.json von einer Seite heruntergeladen und versuche nun, die Einstellungen auf eine bestehende Seite2 zu übertragen. Sollte ich die heruntergeladene site\_settings.json bearbeiten?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [18. Januar 2021 um 16:21 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/19 "2021-01-18T16:21:24Z")

</div>

Seltsam. Entschuldigung, aber das ist meine beste kostenlose Antwort. Du kannst mir eine Nachricht senden, wenn du ein Budget hast.

Es gibt einen Rake-Auftrag, den du ausprobieren kannst, wenn du auf beiden Seiten selbst gehostet bist.

Ich benutze dieses Skript heutzutage selbst nicht mehr. Es könnte sein, dass sich etwas in Discourse geändert hat, aber ich bezweifle es. Wenn du sicher bist, dass du den API-Schlüssel für die Seite verwendest, auf die du schreiben möchtest, dann habe ich keine Vermutung.

---

<div class="post-metadata">

### Author: ![Marcin\_J](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcin_j/32/215377_2.png) [@Marcin\_J](https://meta.discourse.org/u/Marcin_J)
#### Post date: [13. April 2021 um 08:36 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/20 "2021-04-13T08:36:33Z")

</div>

Ich habe versucht, `rake site_settings:export > settings.yml` auszuführen. Mir ist aufgefallen, dass die Tags und Tag-Gruppen, die ich auf meinem Discourse-Server konfiguriert habe, nicht exportiert wurden. Warum ist das so?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [13. April 2021 um 14:32 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/21 "2021-04-13T14:32:15Z")

</div>

Tags sind Tags, keine Seiteneinstellungen. Mir ist kein Weg bekannt, Tags zu migrieren.

---

<div class="post-metadata">

### Author: ![uckelman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/uckelman/32/103854_2.png) [@uckelman](https://meta.discourse.org/u/uckelman)
#### Post date: [30. August 2021 um 11:45 UTC](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496/22 "2021-08-30T11:45:56Z")

</div>

Gibt es eine Möglichkeit, die Einstellungen auch für ~~Plugins~~ Theme-Komponenten zu exportieren?

[Next page](https://meta.discourse.org/t/how-can-i-import-export-settings-into-a-file/51496.md?page=2)
