[Ruby on Rails] Von der MySQL-Konstruktion zum Datenbankwechsel

Einführung

Ich habe es geschafft, es unter Bezugnahme auf verschiedene Artikel vorzustellen, also Ich werde es als Memorandum belassen. Wenn es etwas Seltsames gibt oder etwas, das so gemacht werden sollte Ich würde es begrüßen, wenn Sie mich unterrichten könnten.

Entwicklungsumgebung

ruby 2.5.7 Rails 5.2.4.3 Vagrant 2.2.4 VirtualBox 6.0.14 OS: macOS Catalina centos 7

fließen

1 Erstellen Sie MySQL auf Vagrant 2 Ändern Sie die vorhandene App von Sqlite in MySQL 3 Stellen Sie die neue App auf MySQL ein

Erstellen Sie MySQL auf Vagrant

CentOS-Bestätigung

Überprüfen Sie zunächst das aktuelle CentOS. Überprüfen Sie zum Überprüfen die Vagrant-Datei in der Vagrant-Datei.

Vagrantfile


Vagrant.configure("2") do |config|
    GUEST_RUBY_VERSION = '2.5.7'
    config.vm.box = "centos/7"

...

Dieses Mal gehen wir davon aus, dass CentOS 7 ist. CentOS ist ein typisches Linux-basiertes Betriebssystem zum Erstellen einer virtuellen Umgebung.

Installieren Sie MySQL (für CentOS7)

Aufbau einer Vagrant + Rails6 + MySQL-Entwicklungsumgebung Erstellen Sie zunächst MySQL auf Vagrant, indem Sie auf diesen Artikel verweisen.

Terminal


$ vagrant ssh
$ sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
$ sudo yum -y install mysql-community-server
$ mysqld --version

Wenn die Version angezeigt wird, ist es OK.

Starten Sie nach dem Einstellen des automatischen Starts MySQL

Stellen Sie ein, dass es automatisch startet, wenn der Vagabund startet. Die zweite Zeile ist in Ordnung, wenn mysqld.service aktiviert ist.

Terminal


$ sudo systemctl enable mysqld.service
$ sudo systemctl list-unit-files -t service | grep mysqld
$ sudo systemctl start mysqld.service

MySQL-Initialisierung (optional)

https://style.potepan.com/articles/19020.html Dieser Artikel war also leicht zu verstehen Nach dem Ausführen von $ mysql_secure_installation Lassen Sie uns die anfängliche Einrichtung von MySQL in diesem Artikel durchführen! Bitte einstellen von.

#Legen Sie das Passwort für den Root-Benutzer fest(Legen Sie diesmal das Root-Passwort fest)
$ /usr/bin/mysqladmin -u root password 'root'

#Sicherheitsbezogene Grundeinstellungen(Wenn Sie hier nach einem Passwort gefragt werden'root'Zu)
$ mysql_secure_installation

Führen Sie nach dem Einstellen Folgendes aus und geben Sie das Passwort ein: mysql> Es ist in Ordnung, wenn diese Anzeige angezeigt wird.

Terminal


$ mysql -u root -p

Ändern Sie die vorhandene App von Sqlite in MySQL

Ich war süchtig danach, mysql2 mit Rails zu installieren [Anfänger] So ändern Sie die Datenbank einer vorhandenen Anwendung in MySQL Wir werden es unter Bezugnahme auf den obigen Artikel einführen.

Schienen-App erstellen, Datenbank überprüfen

Erstellen Sie eine Testtabelle mit Gerüst als Test.

Terminal


$ rails new sam
$ cd sam
$ rails g scaffold post name:string

Ich denke, dass config / database.yml so geschrieben ist. Standardmäßig wird die sqlite3-Datenbank verwendet.

config/database.yml


default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

Einführung von Edelstein

Gemfile


# Use sqlite3 as the database for Active Record
gem 'sqlite3'
↓
gem 'mysql2'

Terminal


$ bundle install

Wenn Sie eine Fehlermeldung erhalten, gehen Sie wie folgt vor oder Gemfile gem'mysql2 'Version gem 'mysql2', '~> 0.4.4' Versuchen Sie, zu zu wechseln.

Terminal


$ sudo yum install -y mysql-devel

Ändern Sie die Datenbankeinstellungen in MySQL

congig/database.yml


default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:Geben Sie das Passwort ein, wenn Sie die Grundeinstellungen vorgenommen haben
  host: localhost

development:
  <<: *default
  database: sam_development #sam ist der Name der App.

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: sam_test #sam ist der Name der App.

production:
  <<: *default
  database: sample_production
  username: sample_app
  password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>

Erstellen Sie unten eine Datenbank.

Terminal


$ bundle exec rake db:create
$ rails db:migrate

Terminal


$ mysql -u root -p
$ show tables from sam_development;
+---------------------------+
| Tables_in_sam_development |
+---------------------------+
| ar_internal_metadata      |
| posts                     |
| schema_migrations         |
+---------------------------+
3 rows in set (0.00 sec)

Wenn es so aussieht, ist die Einstellung abgeschlossen.

Stellen Sie die neue App auf MySQL ein

Dies ist einfacher als das Ändern einer vorhandenen App.

Terminal


$ rails new sample -d mysql
$ cd sample
$ rails g scaffold post name:string

congig/database.yml


default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password:Geben Sie das Passwort ein, wenn Sie die Grundeinstellungen vorgenommen haben
  socket: /var/lib/mysql/mysql.sock

development:
  <<: *default
  database: sample_development

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: sample_test

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default
  database: sample_production
  username: sample
  password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>

Gemfile


# Use mysql as the database for Active Record
gem 'mysql2', '>= 0.4.4', '< 0.6.0'

Terminal


$ bundle exec rake db:create
$ rails db:migrate

Wenn der Fehler "Zugriff verweigert" angezeigt wird, Bitte melden Sie sich einmal wie unten gezeigt an und führen Sie die obigen Schritte erneut aus.

Terminal


$ mysql -u root -p
exit

Zusammenfassung

Es kann mit Zugriff gespielt werden, der durch die anfängliche Einstellung verweigert wurde. Dies kann aus Sicherheitsgründen unvermeidbar sein. Ich würde mich freuen, wenn Sie mir beibringen könnten, ob es falsche Beschreibungen oder Methoden gibt.

Auf Twitter werden auch Technologien und Ideen hochgeladen, die nicht auf Qiita hochgeladen wurden Ich wäre Ihnen dankbar, wenn Sie mir folgen könnten. Klicken Sie hier für Details https://twitter.com/japwork

Recommended Posts

[Ruby on Rails] Von der MySQL-Konstruktion zum Datenbankwechsel
Wechseln Sie in einem neuen Ruby on Rails-Projekt von SQLite3 zu PostgreSQL
[Ruby on Rails] So ändern Sie den Spaltennamen
[Von Zeit zu Zeit aktualisiert] Ruby on Rails Praktische Methode
[Ruby on Rails] Ändern Sie die URL-ID in den Spaltennamen
Bereitstellen auf Ruby on Rails Elastische Bohnenstange (Umgebungskonstruktion)
Verwendung von Ruby on Rails
Ruby on Rails 6.0-Umgebungskonstruktionsnotiz
Ändern Sie die Datenbank von SQLite in MySQL
Bereitstellung auf Ruby on Rails Elastic Beanstalk (Änderung der IAM-Berechtigung)
Bereitstellen für Heroku [Ruby on Rails] Anfänger
Vorbereiten der Einführung von jQuery in Ruby on Rails
[Ruby on Rails] Verwendung von redirect_to
[Ruby on Rails] Schaltfläche, um nach oben zurückzukehren
Muskel Rubin auf Schienen Tag 1 ~ Umweltbau ~
[Fehler] Wechseln Sie die Umgebungskonstruktion, um oss (Open Source) von Ruby on Rails zu verwenden
So lösen Sie die lokale Umgebungskonstruktion von Ruby on Rails (MAC)!
[Persönliches Memo] Ruby on Rails-Umgebungskonstruktion (Windows)
[Rails MySQL] So setzen Sie die Datenbank auf Heroku zurück
DataSource-Verbindung von WebSphere zu MySQL (Änderung der DataSource-Eigenschaften?)
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Von Java zu Ruby !!
[Erste Umgebungskonstruktion] Ich habe versucht, eine Rails6 + MySQL8.0 + Docker-Umgebung unter Windows 10 zu erstellen.
[Einführung] Erstellen Sie eine Ruby on Rails-Anwendung
Zusammenfassung der Methoden zum Aktualisieren mehrerer Spalten [Ruby on Rails]
Ändern Sie den Primärschlüssel der Datenbank (MySQL) in eine beliebige Spalte.
So stellen Sie auf einem virtuellen Server eine Verbindung von Spring zu MySQL her (ungelöst)
[Ruby On Rails] So setzen Sie die Datenbank in Heroku zurück
[Umgebungskonstruktion Mac] Ruby on Rails (+ Webpacker behandelt Fehler)
(Ruby on Rails6) Reflektiert den veröffentlichten Inhalt aus dem Formular
(Ruby on Rails6) So erstellen Sie ein Modell und eine Tabelle
Für diejenigen, die MySQL für die Datenbank in der Umgebungskonstruktion von Rails6 ~ verwenden möchten.
Ruby on Rails Lernrekord -2020.10.03
Rails Engineer Environment Construction Ruby2.7.1
Portfolioerstellung Ruby on Rails
Schienen Umgebungsbau Schienen5.2.1 ruby2.5.1 Catalina
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②