[RUBY] [Rails] So löschen Sie MySQL-Daten aus der Produktionsumgebung, nachdem Sie sie in die Entwicklungsumgebung gestellt haben

Einführung

Wenn ich MySQL-Daten in die Entwicklungsumgebung in der Produktionsumgebung einfügte, konnte ich sie ohne besonderen Fehler eingeben, aber als ich sie löschte, trat ein Fehler auf und ich war süchtig danach. Es mag ein etwas ungewöhnlicher Fall sein, aber ich habe beschlossen, ihn als Referenz für andere Personen zusammenzufassen.

ähnliche Links

Im Folgenden finden Sie einen Artikel darüber, wie Sie MySQL-Daten in der Produktionsumgebung zunächst in die Entwicklungsumgebung einfügen.

Error

Als ich den Befehl zum Löschen der Datenbank selbst in der Entwicklungsumgebung ausführte, ...

$ rails db:drop

Ich habe den Fehler `` `ActiveRecord :: ProtectedEnvironmentError``` erhalten. .. ..

Die Bedeutung dieses Fehlers ist

Ich versuche, eine Datenbank in einer Produktionsumgebung zu betreiben. Ist das in Ordnung?

Es ist wie eine Warnung, Sie können den Vorgang fortsetzen, indem Sie die Umgebungsvariable eingeben. Ich sage.

Es ist in erster Linie eine Entwicklungsumgebung, aber warum kommt es als Produktionsumgebung heraus? ??

rails aborted!
ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'production' database.
If you are sure you want to continue, run the same command with the environment variable:
DISABLE_DATABASE_ENVIRONMENT_CHECK=1
bin/rails:4:in `<main>'
Tasks: TOP => db:migrate:reset => db:drop => db:check_protected_environments
(See full trace by running task with --trace)

Fazit

Ich werde aus der Schlussfolgerung zuerst schreiben,

In Rails5 werden Umgebungsvariablen in MySQL gespeichert. Wenn Sie die Daten der Produktionsumgebung so wie sie sind in die Entwicklungsumgebung einfügen, werden die Variablen der Produktionsumgebung in den Umgebungsvariablen von MySQL gespeichert, sodass der obige Fehler aufgetreten ist. Es war.

Die Lösung besteht also darin, die MySQL-Umgebungsvariablen von denen in der Produktionsumgebung in diejenigen in der Entwicklungsumgebung umzuschreiben.

Lösungsverfahren

Stellen Sie eine Verbindung zu MySQL her.

$ mysql -h db -u root -p

Überprüfen Sie die vorhandene Datenbank.

$ show databases;

Geben Sie die Zieldatenbank an.

$ use *******;

Zeigt eine Liste der Tabellen in der Datenbank an.

$ show tables;

Ich denke, es gibt `` `ar_internal_metadata``` in der Tabellenliste. Hier werden Umgebungsvariablen gespeichert.

+---------------------------------------------------+
| Tables_in_scm_development                         |
+---------------------------------------------------+
| ar_internal_metadata                              |
| ...                                               |
+---------------------------------------------------+

Betrachtet man den Inhalt von ar_internal_metadata,

$ select * from ar_internal_metadata;

Ich fand die Buchstaben "Produktion".

+-------------+-------------+---------------------+---------------------+
| key         | value       | created_at          | updated_at          |
+-------------+-------------+---------------------+---------------------+
| environment | production  | 2020-01-10 09:37:29 | 2020-01-10 09:37:29 |
+-------------+-------------+---------------------+---------------------+

Ändern Sie diese `Produktion in `` Entwicklung```.

$ update ar_internal_metadata set value='development'

Wenn Sie sich den Inhalt von ar_internal_metadata noch einmal ansehen,

$ select * from ar_internal_metadata;

Die Umgebungsvariable könnte in "Entwicklung" geändert werden.

+-------------+-------------+---------------------+---------------------+
| key         | value       | created_at          | updated_at          |
+-------------+-------------+---------------------+---------------------+
| environment | development | 2020-01-10 09:37:29 | 2020-01-10 09:37:29 |
+-------------+-------------+---------------------+---------------------+

Raus aus MySQL

$ exit

Führen Sie den Befehl aus, um die Datenbank erneut zu löschen. Dann ist es mir gelungen!

$ rails db:drop

Zusammenfassung

Es mag für manche Menschen schwierig sein zu verstehen, weil ich das Verfahren in Eile geschrieben habe, aber ich hoffe, es wird für jemanden in Not nützlich sein.

Referenz

Recommended Posts

[Rails] So löschen Sie MySQL-Daten aus der Produktionsumgebung, nachdem Sie sie in die Entwicklungsumgebung gestellt haben
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
[Grobe Erklärung] So trennen Sie den Betrieb der Produktionsumgebung und der Entwicklungsumgebung mit Rails
[Rails] Ausführen von "Rails db: create" usw. in der Produktionsumgebung EC2
So installieren Sie Pry nach dem Erstellen einer Rails-Entwicklungsumgebung mit Docker
So löschen Sie große Datenmengen in Rails und Bedenken
Verwendung von MySQL im Rails-Tutorial
[Rails] Setzen Sie die Datenbank in der Produktionsumgebung zurück
Rails6.0 ~ So erstellen Sie eine umweltfreundliche Entwicklungsumgebung
[Rails] Verwendung von PostgreSQL in einer Vagrant-Umgebung
So überprüfen Sie Rails-Befehle im Terminal
Führen Sie Docker in die Entwicklungs- und Testumgebung vorhandener Rails- und MySQL-Apps ein
So erstellen Sie eine eindeutige Datenkombination in der Schienen-Zwischentabelle
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
Ich erhalte Mysql2 :: Error :: ConnectionError in der Produktionsumgebung
[Schienen] So zeigen Sie Bilder in der Ansicht an
Für diejenigen, die MySQL für die Datenbank in der Umgebungskonstruktion von Rails6 ~ verwenden möchten.
So überprüfen Sie die in der PC-Entwicklungsumgebung auf Ihrem Smartphone erstellte WEB-Anwendung
[Schienen] Anzeigen von Informationen, die in der Datenbank gespeichert sind
[Rails] Was tun, wenn Sie versehentlich eine Bundle-Installation in einer Produktionsumgebung in Ihrer lokalen Umgebung durchführen?
[Rails / Routing] So verweisen Sie auf den Controller in Ihrem eigenen Verzeichnis
[Docker] So sichern und wiederherstellen Sie DB-Daten der Rails-Anwendung auf Docker-Compose [MySQL]
[Programmieranfänger] Was tun, wenn Schienen zu einem Fehler in der lokalen Entwicklungsumgebung werden?
[Rails] Verschiedene Möglichkeiten zum Löschen von Daten
[Rails / Heroku / MySQL] So setzen Sie die Datenbank der Rails-App auf Heroku zurück
Wie installiere ich die in Ubuntu verwendete Sprache und wie erstelle ich die Umgebung?
Nachdem ich Progate gelernt hatte, versuchte ich, eine SNS-Anwendung mit Rails in der lokalen Umgebung zu erstellen
So installieren Sie jQuery in Rails 6
So erstellen Sie eine Rails + Vue + MySQL-Umgebung mit Docker [neueste Version 2020/09]
So fügen Sie die Löschfunktion hinzu
So installieren Sie Swiper in Rails
Ausführen mit normalen Befehlen für die Entwicklungssprache in der Docker-Entwicklungsumgebung
[Schienen] Über den Fehler, dass das Bild nicht in der Produktionsumgebung angezeigt wird
So ändern Sie die maximale und maximale Anzahl von POST-Daten in Spark
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
So lösen Sie die lokale Umgebungskonstruktion von Ruby on Rails (MAC)!
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
Android-Entwicklung, wie man den Wert des JSON-Objekts auf null überprüft
[Rails] So wenden Sie das in der Hauptanwendung verwendete CSS mit Administrate an
[Rails] So lösen Sie die Zeitverzögerung von created_at nach der Speichermethode
So implementieren Sie Suchfunktionen in Rails
So ändern Sie den App-Namen in Rails
So fügen Sie ein Video in Rails ein
[Schienen] Verwendung der Kartenmethode
[Docker] Entwicklung der Entwicklungsumgebung Rails6 / Ruby2.7 / MySQL8