Laut dem Link besteht Interesse, aber es sind mehrere Jahre vergangen und ich weiß nicht, ob sie es tatsächlich umgesetzt haben oder nicht.
Ein sehr nützliches Szenario hierfür ist die Konfiguration eines VPS-Servers mit exakt denselben Einstellungen wie der Produktionsserver, und dieser geklonte VPS wäre ausschließlich für die Entwicklung. Auf diese Weise kann ich effektiver mit meinem Entwicklerteam zusammenarbeiten.
Sie benötigen viel mehr als nur die Einstellungen, um zu sehen, dass diese Dinge funktionieren. Warum stellen Sie nicht einfach die Produktionsdatenbank auf Staging wieder her? Siehe Einrichten eines Staging-Servers.
Eine Frage: werden dabei auch die Foren-Anmeldeinformationen und -Inhalte geklont? Denn die Entwickler benötigen das offensichtlich nicht, sondern nur die grundlegende Konfiguration, um die Plugins zu entwickeln. Ich möchte nicht, dass sie Zugriff auf die Konten meiner Benutzer haben, geschweige denn auf die Administratorkonten.
Ja – es klont absolut alles. Wenn Sie nicht vertrauenswürdige Entwickler haben, ist das möglicherweise nicht das Beste. Persönlich würde ich vertrauenswürdige Entwickler holen!
So wie es ist, müssten Sie sich verpflichten, die Struktur, die Sie benötigen (z. B. Einstellungen, Kategorien, Gruppen, Plugins usw.), zu klonen und sie entweder manuell synchron zu halten, bei Bedarf erneut zu klonen oder eine eigene Lösung zur Automatisierung zu entwickeln.
Selbst wenn Sie Ihren Entwicklern vertrauen, kann es Vorschriften (wie die DSGVO) geben, die es Ihnen untersagen, personenbezogene Daten an Personen außerhalb eines bestimmten Rechtsgebiets weiterzugeben, oder die verlangen, dass Sie die Menge der auf ein anderes System kopierten personenbezogenen Daten minimieren. Darüber hinaus führt ein Entwicklungs- oder Staging-Server ungetestete Software aus, die Sicherheitsprobleme aufweisen könnte.
Wir führen unmittelbar nach der Wiederherstellung des Backups von der Produktion immer etwas Ähnliches auf dem Staging-Server aus, das alle Benutzer außer Mitarbeitern und denen in der Gruppe testusers anonymisiert.
keep_groups = Group.where(name: ['staff', 'testusers']).pluck(:id)
acting_user = User.find(-1)
User.all.each do |u|
next if u.in_any_groups? keep_groups
user = UserAnonymizer.new(u, acting_user).make_anonymous
end