Wechseln Sie in einem neuen Ruby on Rails-Projekt von SQLite3 zu PostgreSQL

Dies ist eine Zusammenfassung der Schritte zum Ändern der Datenbank eines neuen Projekts, das mit Ruby on Rails erstellt wurde.

Umgebung

Gründe, PostgreSQL von SQLite zu ändern

Die Standarddatenbank für Ruby on Rails ist SQLite3 </ b>. Bei der Bereitstellung auf Heroku führt SQLite3 jedoch zu einem Fehler. </ b> Wenn Sie zum Zeitpunkt von "Rails New" zu PostgreSQL wechseln, können Sie sich die Mühe ersparen, Daten später zu migrieren.

Gebrauchsfertig für Postgres

Installieren Sie Homebrew auf dem Mac

Installieren Sie zuerst den "xcode", der für die Installation des "Homebrew" erforderlich ist.

Installieren Sie xcode

xcode-select --install

Installieren Sie Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Klicken Sie hier für die offizielle Seite: Homebrew

Installieren Sie Postgres über Brew auf dem Mac

Sie können die neueste stabile Version herunterladen, indem Sie "postgresql" angeben.

brew install postgresql

Postgres-Initialisierung

Aktualisieren Sie .bash_profile

ECHO 'export PGDATA=/usr/local/var/postgres' >> .bash_profile

Laden Sie .bash_profile neu

source ~/.bash_profile

Erstellen Sie einen Benutzer

Erstellen Sie einen Benutzer zum Verwalten der Datenbank.

 createuser <username>

Verwenden Sie Postgres in Rails-Projekten

Ändern Sie den Teil SQLite3 in Gemfile in PostgreSQL

Aktualisieren Sie die Gemfile und ändern Sie die Beschreibung von SQLite3 in PostgreSQL.

Vorher ändern

Gemfile.rb


# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'

Nach der veränderung

Gemfile.rb


# Use Postgres as the database for Active Record
gem 'pg'

Installieren Sie den Edelstein mit Bundle-Installation.

bundle install

Bearbeiten Sie database.yml, um die Datenbank zu konfigurieren

app/config/database.yml


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

 development:
   <<: *default
   database: myapp_dev #Beliebiger Datenbankname

 test:
   <<: *default
   database: myapp_sandbox #Beliebiger Datenbankname

 production:
   <<: *default
   database: myapp_production #Beliebiger Datenbankname
   username: <username> #Beliebiger Benutzername
   password: request.env['DB_PASSWORD'] #Beliebiges Passwort
   adapter: postgresql
   encoding: unicode
   pool:  <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

Schreiben Sie das Passwort in .env

Wenn Sie das Passwort so schreiben, wie es in database.yml steht, wird das Passwort angezeigt, wenn Sie es mit Public auf GitHub aktualisieren. Erstellen wir eine .env-Datei, um die Umgebungsvariablen zu verwalten. Fügen Sie die .env-Datei zu .gitignore hinzu, um zu verhindern, dass sie auf GitHub hochgeladen wird.

.env


DB_PASSWORD = '<password>'

.gitignore


.env

Erstellen Sie eine Datenbank

bundle exec rails db:create

Wenn die folgende Meldung angezeigt wird, hat PostgreSQL die Datenbankerstellung abgeschlossen.

Created database 'myapp_dev'
Created database 'myapp_sandbox'

Recommended Posts