ハードはMacBook Air, 開発環境はVScodeを用いています。
前回の記事(rails new でデータベースをPostgreSQLにする)に付随するエラーの解決方法です。
前回の内容
$ rails _5.1.6_ new アプリ名 --database=postgresql
これをrails6で実行し、
$ rails server
でサーバーを立ち上げ、localhost:3000にアクセスすると、
ActiveRecord::NoDatabaseError というエラーが発生します。
これは、データベースが存在していないことが原因で起こるエラーです。
#解決方法 データベースを作る
##自動でやる方法
まず、rails new で生成したディレクトリに移動してください。
$ cd 作成したディレクトリ
次に
$ rails db:create
を実行してデータベースを生成します。
config/database.yml の内容に沿ってデータベースが自動で生成されます。
###手動でやる方法
まず、rails new で生成したディレクトリに移動してください。
$ cd 作成したディレクトリ
>次に、config/database.yml を書き換えます。
>```:config/database.yml変更前
~省略~
>development:
<<: *default
database: アプリ名_development
>~省略~
config/database.yml変更後
~省略~
development:
<<: *default
database: アプリ名_db
host: localhost
encoding: utf8
reconnect: false
username: 自分のユーザー名
~省略~
>※ database:はデータベース名なのでわかりやすくdevelopmentをdbに変更
その他(hots,encoding,recconect,username)に関しても、一応追記しなくても解決できるが、追記することを推奨。
>**次に、SQLを立ち上げます。**
>```
$ psql -h localhost -p 5432 -U 自分のユーザー名 -d postgres
>psql (12.3)
Type "help" for help.
>postgres=#
この辺のコマンドについては
https://www.postgresql.jp/document/9.3/html/app-psql.html
に詳しく載っています。
($ psql -h localhost -d postgres ←これだけでも一応解決できました。)
このコマンドを実行すると、SQL文を入力できるようになります。
ここにデータベースを作成するSQL文を書いていきます。
入力前
postgres=#
```:入力後
postgres=# create database アプリ名_db;
ここで、アプリ名_dbは、最初に config/database.yml で指定した database:アプリ名_dbを入力しています。
実行後
postgres=# create database アプリ名_db;
CREATE DATABASE
postgres=# \q
最後に \q を入力すると、抜けることができます。
これでもう一度 $ rails server でサーバーを立ち上げて、localhost:3000 にアクセスしてみてください。エラーは解消されているはずです。
#無事に解決しました!
役に立ったら是非**LGTMボタンをポチッと押していただけると嬉しいです。**
一緒に Rails学習 頑張りましょう!:raised_hand_tone1: