Ralisの、rails db:create
コマンドを実行すると、DBを生成することができます。
このときのDBの名前は、 プロジェクト名_development や プロジェクト名_production となります。
例えば、Railsアプリの名前がappであれば、app_developmentとなります。
この生成されるDB名を変更する方法についてです。
db:createで生成するDB名を指定する方法
RailsのDBまわりの設定は、database.yml に記述されています。
各環境毎に、development, test, productionが用意されています。
db:createで生成するDB名を指定するには、各環境のdatabaseの値を変更するだけです。
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: db
username: postgres
passowrd: password
development:
<<: *default
database: rails_aa_development #ここ
test:
<<: *default
database: rails_aa_test #ここ
production:
<<: *default
database: rails_aa_production #ここ
username: rails_aa
password: <%= ENV['RAILS_AA_DATABASE_PASSWORD'] %>
default: &defaultとは?
default: &defaultというのは、デフォルトとなる設定内容で、&default
でこの設定にでdefaultという名前をつけています。
こうすることで、この内容を<<: *default で呼び出すことができます。
<<: *default とは?
defaultという名前が付けられた内容をまるごと呼び出しています。
development:
<<: *default
database: rails_aa_development
↓ 以下と同じです。
development:
adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: db
username: postgres
passowrd: password
database: rails_aa_development
実例:名前を変更したDBを生成する
例として、db_devという名前でDBを生成します。
database.ymlの変更
database.ymlのdevelopmentの部分を次のように変更します。
development:
<<: *default
database: db_dev
DBの生成
rails db:create
を実行すると、開発環境(development)では、devlopmentのDBとtestのDBの2つが生成されます。
# rails db:create
Created database 'db_dev'
Created database 'rails_aa_test'
Created database ‘db_dev’ で指定したDBが生成されています。
過去にrails db:create を実行済みの場合
上記例は、初回の rails db:create
なので、testのDBも生成されています。もし既に作成済みの場合は、already existsが表示されます。
# rails db:create
Created database 'db_dev'
Database 'rails_aa_test' already exists
Production環境のDBを生成する方法
デフォルトの設定では開発環境(development)になっています。これを本番環境(Production)用のDBを作成するには以下のようにします。
db:create RAILS_ENV=production