[RUBY] [Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant

Environnement de développement

・ Rubis: 2.5.7 Rails: 5.2.4 ・ Vagrant: 2.2.7 -VirtualBox: 6.1 ・ PostgreSQL: 9.2.24 ・ Système d'exploitation: macOS Catalina

la mise en oeuvre

1. Connectez-vous à vagrant ssh

Terminal


$ vagrant ssh

2. Mettez à jour yum avec la dernière version

Terminal


$ sudo yum -y update

3. Installez PostgreSQL

Terminal


$ sudo yum -y install postgresql

Terminal


$ sudo yum -y install postgresql-devel

Terminal


$ sudo yum -y install postgresql-server

Exécutez psql --version, et si la version est affichée, l'installation est terminée.

Terminal


$ psql --version
psql (PostgreSQL) 9.2.24

4. Initialisez PostgreSQL

Terminal


$ sudo postgresql-setup initdb

5. Démarrez PostgreSQL

Terminal


$ sudo service postgresql start

6. Créez un compte PostgreSQL et connectez-vous

Terminal


$ sudo -u postgres psql

Terminal


postgres=# create role [Tout nom d'utilisateur] with createdb login password '[Tout mot de passe]';

Si le rôle est ajouté en exécutant \ du, la création du compte est terminée.

Terminal


postgres=# \du
                                    List of roles
  Role name      |                   Attributes                   | Member of 
-------------+------------------------------------------------+-----------
 [Tout nom d'utilisateur] | Create DB                                      | {}
 postgres        | Superuser, Create role, Create DB, Replication | {}

7. Vérifiez la base de données

Vérifiez la base de données créée par sudo postgresql-setup initdb à l'étape 4.

Terminal


postgres=# \l
                             List of databases
   Name    |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
-----------+----------+-----------+---------+-------+-----------------------
 postgres  | postgres | SQL_ASCII | C       | C     | 
 template0 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
           |          |           |         |       | postgres=CTc/postgres
 template1 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
           |          |           |         |       | postgres=CTc/postgres
(3 rows)

** * Veuillez vous référer à l'article suivant pour la différence entre template0 et template1. ** **

[Différence entre template0 et template1 de PostgreSQL](https://db.just4fun.biz/?PostgreSQL/template0%E3%81%A8template1%E3%81%AE%E9%81%95%E3%81%84%E3 % 81% AB% E3% 81% A4% E3% 81% 84% E3% 81% A6)

8. Créez une application Rails

Puisque la base de données par défaut est SQLite, spécifiez PostgreSQL avec l'option -d.

Terminal


$ rails new sample -d postgresql

9. Modifiez database.yml

Pour le modèle, spécifiez template0 qui peut créer une base de données propre.

config/database.yml


default: &default
  adapter: postgresql
  encoding: unicode
  template: template0
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username:Nom d'utilisateur défini à l'étape 6
  password:Mot de passe défini à l'étape 6

10. Créez une base de données

Terminal


$ rails db:create

* Si vous obtenez l'erreur FATAL: l'authentification d'identité a échoué pour l'utilisateur

** ① Ouvrez le fichier de configuration PostgreSQL. ** **

Terminal


$ sudo vi /var/lib/pgsql/data/pg_hba.conf

** ② Modifiez la méthode d'authentification en bas. ** **

Changez METHOD en «md5».

pg_hba.conf


.
.
.
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

[Méthode d'authentification fréquemment utilisée]

ʻIdent: Le propriétaire de la base de données s'authentifie en faisant correspondre le nom d'utilisateur du système d'exploitation exécutant le shell, md5: Authentifiez-vous avec un mot de passe. trust`: pas d'authentification.

Commandes fréquemment utilisées

** [Avant la connexion] **

sudo service postgresql start: Démarrer sudo service postgresql stop: Arrêter sudo service postgresql restart: redémarrer sudo -u postgres psql: Connexion

** [Après connexion] **

\ q: Déconnexion \?: Affichage de l'aide \ l: Affichage de la liste de la base de données \ du: Affichage de la liste des utilisateurs \ c nom de la base de données: se connecter à la base de données \ z: Affichage de la liste des tableaux

Recommended Posts

[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant
Comment utiliser MySQL dans le didacticiel Rails
Comment utiliser les variables d'environnement dans RubyOnRails
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
[Rails] Comment utiliser les boîtes de sélection dans Ransack
Comment utiliser JQuery dans Rails 6 js.erb
[Rails] Comment utiliser enum
Comment utiliser la jonction de rails
[Rails] Comment utiliser authenticate_user!
[Rails] Comment utiliser Scope
Les débutants utilisent ubuntu dans la fenêtre pour préparer l'environnement des rails
[Rails] Comment utiliser la "devise" des gemmes
Comment utiliser Lombok au printemps
[Rails] Comment utiliser l'appareil (Remarque)
[Rails] Comment utiliser les messages flash
Comment utiliser Ruby on Rails
Comment utiliser InjectorHolder dans OpenAM
[Rails] Comment utiliser Active Storage
Comment installer jQuery dans Rails 6
Comment utiliser les classes en Java?
[Introduction aux rails] Comment utiliser le rendu
Comment installer Swiper in Rails
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Comment changer le nom de l'application dans les rails
Comment utiliser le volume nommé dans docker-compose.yml
Comment insérer une vidéo dans Rails
[Rails] Comment utiliser ActiveRecord :: Bitemporal (BiTemporalDataModel)
[Rails] Comment utiliser la méthode de la carte
Comment utiliser Docker dans VSCode DevContainer
[rails] Comment configurer le routage dans les ressources
[Ruby on Rails] Comment utiliser redirect_to
Comment implémenter la fonctionnalité de classement dans Rails
[Note] Comment utiliser Rails 6 Devise + cancancan
Comprendre en 5 minutes !! Comment utiliser Docker
[Rails] Comment utiliser la méthode d'assistance, confimartion
Comment créer un environnement Rails 6 avec Docker
Comment utiliser ExpandableListView dans Android Studio
[Rails] Comment exécuter "rails db: create" etc. dans l'environnement de production EC2
Comment utiliser Map
Comment écrire des rails
Comment utiliser rbenv
Comment lier Rails6 Vue (à partir de la construction de l'environnement)
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment utiliser les rails g échafaudage, fonctions, précautions
Comment utiliser collection_select
Comment installer Titan 2D (v4.2.0) dans un environnement virtuel
Comment traduire Rails en japonais en général
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct