Ceci est un résumé des étapes pour changer la base de données d'un nouveau projet créé avec Ruby on Rails.
La base de données standard de Ruby on Rails est  SQLite3 </ b>, mais lors du déploiement sur  Heroku, SQLite3 génère une erreur. </ b>
Si vous passez à PostgreSQL au moment de rails new, vous pouvez éviter la migration des données plus tard.
Installez d'abord le xcode requis pour installer le Homebrew.
xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Cliquez ici pour la page officielle: Homebrew
Vous pouvez télécharger la dernière version stable en spécifiant postgresql.
brew install postgresql
Mettre à jour .bash_profile
ECHO 'export PGDATA=/usr/local/var/postgres' >> .bash_profile
Recharger .bash_profile
source ~/.bash_profile
Créez un utilisateur pour gérer la base de données.
 createuser <username>
Mettez à jour le Gemfile et remplacez la description de SQLite3 par PostgreSQL.
Changer avant
Gemfile.rb
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'
Après le changement
Gemfile.rb
# Use Postgres as the database for Active Record
gem 'pg'
Installez la gemme avec l'installation groupée.
bundle install
app/config/database.yml
 default: &default
   adapter: postgresql
   encoding: unicode
   pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
   timeout: 5000
 development:
   <<: *default
   database: myapp_dev #Nom de base de données arbitraire
 test:
   <<: *default
   database: myapp_sandbox #Nom de base de données arbitraire
 production:
   <<: *default
   database: myapp_production #Nom de base de données arbitraire
   username: <username> #Tout nom d'utilisateur
   password: request.env['DB_PASSWORD'] #Tout mot de passe
   adapter: postgresql
   encoding: unicode
   pool:  <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
Si vous écrivez le mot de passe tel qu'il est dans database.yml, le mot de passe sera exposé lorsque vous le mettrez à jour vers GitHub avec Public.
Créons un fichier .env pour gérer les variables d'environnement.
Ajoutez le fichier .env à .gitignore pour l'empêcher d'être téléchargé sur GitHub.
.env
DB_PASSWORD = '<password>'
.gitignore
.env
bundle exec rails db:create
Si le message suivant apparaît, PostgreSQL a terminé la création de la base de données.
Created database 'myapp_dev'
Created database 'myapp_sandbox'
        Recommended Posts