Ich versuche, alle Daten von S3 zurück auf meinen Server zu migrieren. Allerdings liefert rake uploads:migrate_from_s3 den Fehler You must disable S3 uploads before running that task. Ich habe daher die Option enable s3 uploads in meinen Discourse-Einstellungen deaktiviert und zusätzlich DISCOURSE_USE_S3: false in meine app.yml-Datei aufgenommen. Trotzdem ohne Erfolg – derselbe Fehler.
Was ist eine S3-Umgebungsvariable? In meinem Fall wird DISCOURSE_USE_S3 unter env gespeichert.
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
UNICORN_WORKERS: 2
## TODO: Der Domainname, auf den diese Discourse-Instanz antworten wird
DISCOURSE_HOSTNAME: engineersasylum.com
## Kommentieren Sie dies aus, wenn Sie möchten, dass der Container mit demselben
## Hostnamen (-h-Option) wie oben angegeben gestartet wird (Standard: "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Durch Kommas getrennte Liste von E-Mail-Adressen, die bei der ersten Anmeldung zu Administratoren und Entwicklern werden
## Beispiel: 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'praveen369gen@gmail.com'
#S3-Konfiguration
DISCOURSE_USE_S3: false
DISCOURSE_S3_REGION: ap-south-1
DISCOURSE_S3_ACCESS_KEY_ID: AKxxxxxxxxxxxxxxxxxxxxxDQ
DISCOURSE_S3_SECRET_ACCESS_KEY: QWVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxLigGs
DISCOURSE_S3_BUCKET: enginxxxxxxxxxxket
DISCOURSE_S3_BACKUP_BUCKET: enginxxxxxxxxxxxxcket
DISCOURSE_BACKUP_LOCATION: s3
… und vergiss nicht, @Pravi, dass du deinen Container (App) neu bauen musst, nachdem du die meisten Variablen in deiner yml-Datei geändert hast; einige Änderungen können durch das Stoppen und Starten deines Containers wirksam werden, aber im Zweifel baue den Container (App) nach jeder Änderung an deiner yml-Datei neu.
Ich habe ‘local’ als Sicherungsspeicherort hinzugefügt, den Container neu erstellt und den Migrationsversuch gestartet, aber leider ohne Erfolg. Es erscheint die Meldung: Sie müssen S3-Uploads deaktivieren, bevor Sie diese Aufgabe ausführen.
Nachdem Sie mit DISCOURSE_USE_S3=false in der YAML-Datei neu erstellt und den Rake-Auftrag ausgeführt haben, heißt es immer noch: „Sie müssen S3-Uploads deaktivieren“? Haben Sie auch im Admin-Bereich S3 deaktiviert?
Ja, ich habe DISCOURSE_USE_S3=false in die app.yml hinzugefügt, dann den Container neu erstellt und den Rake-Auftrag ausgeführt, aber es wird immer noch die gleiche Ausgabe angezeigt. Ja, ich habe den Upload auf der Admin-Seite deaktiviert.
Ich verstehe nicht, wie das letzte Ergebnis wahr sein kann, wenn du die Umgebungsvariable auf false gesetzt und neu aufgebaut hast. Die SiteSetting-Einträge stammen aus deinem Admin-Bereich, während GlobalSettings über die app.yml konfiguriert wird.
Das habe ich auch versucht. Ich habe alles außer DISCOURSE_USE_S3: false auskommentiert, und derselbe Fehler wie zuvor taucht auf.
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migrating uploads from S3 to local storage for 'default'...
rake aborted!
NoMethodError: undefined method `downcase' for nil:NilClass
/var/www/discourse/app/models/global_setting.rb:107:in `s3_bucket_name'
/var/www/discourse/app/models/site_setting.rb:157:in `absolute_base_url'
/var/www/discourse/lib/tasks/uploads.rake:138:in `migrate_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:118:in `block in migrate_all_from_s3'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:118:in `migrate_all_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:93:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_from_s3
(See full trace by running task with --trace)
Die SiteSetting und GlobalSettings sind deaktiviert.