ruby - Ruby on Rails - データベース作成

 
1. 概要
2. データベース作成(失敗)
3. npm をインストールしてみる
4. データベース作成

1. 概要

 先に OWNER を変えておきます。

> chown -R hogehoge:hogehoge project
 「Ruby on RailsのデータベースをPostgreSQLに設定する。 - Qiita」を参考にして・・・。

2. データベース作成(失敗)

 project/config/database.yml というファイルが出来上がっています。  .yml という拡張子について検索してみたら「YAMLとは何か? - いつもRailsの設定ファイルで出てくるやつの正体 - Qiita」ってのがひっかかりました。  正式には .yaml らしい。  あわくって、シンタックスハイライトに載せてみます。  このサイトで使用しているシンタックスハイライトのモジュールは prism.js につき、このあたりの詳細は「HTML - シンタックスハイライト - prism.js」をご参照ください。  コメントされていない箇所を抜き書きすると

#
default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: project_development


# Do not set this db to the same as development or production.
test:
  <<: *default
  database: project_test


#
production:
  <<: *default
  database: project_production
  username: project
  password: <%= ENV['PROJECT_DATABASE_PASSWORD'] %>
 とりあえず参考サイトに習って、以下のように編集してみます。  19行目、unicode → utf8  84、85行目、実際のデータベースのユーザ名・パスワード  編集したら

> rake db:create
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

(See full trace by running task with --trace)
 うむ、これはトレースするまでもなく、カレントディレクトリをプロジェクトの直下にしなければならないようです。  ディレクトリを変えて

> cd プロジェクトのパス
> rake db:create
rake aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
/プロジェクトのパス/config/application.rb:7:in `<top (required)>'
/プロジェクトのパス/Rakefile:4:in `require_relative'
/プロジェクトのパス/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
 「Ruby on Rails ExecJS::RuntimeUnavailable」で検索するとかかったのが以下の2件。
Ruby on Rails - Railsの起動エラー(ExecJS::RuntimeUnavailable) |teratail」
「rails sコマンド実行時に「Could not find a JavaScript runtime.」とエラーが出る場合の対処法 - Qiita
 まぁ ExecJS という Runtime がないというのはわかりますわな。  インストールすればいいらしいのですが、後者を読むと Node.js でもいいらしい。  Node.js と言えば、本サイトの .CSS ファイルのベンダープレフィックスを解消するためにオートプレフィクサーをいれたときのものだな。  そのいきさつは「HTML - Autoprefixer(Node.js・gulp)」に書いてあります。  で、改めて、node について pkg search してみると。

> pkg search node
gstreamer-plugins-annodex-0.10.31_2,3 Gstreamer annodex CMML plugin
kadnode-2.2.5_1                P2P name resolution daemon
leafnode-1.11.11               NNTP package for offline news caching and reading
monodevelop-7.6.3.1            IDE for the .NET platform
munin-node-2.0.42              Node-specific part of Munin
node-10.11.0                   V8 JavaScript for client and server
node-thrift-0.11.0             Node.js bindings for the Apache Thrift RPC system
node6-6.14.4                   V8 JavaScript for client and server (6.x LTS)
node8-8.12.0                   V8 JavaScript for client and server (8.x LTS)
node_exporter-0.15.2           Prometheus exporter for machine metrics
npm-node6-6.4.1                Node package manager
npm-node8-6.4.1                Node package manager
p5-Tree-DAG_Node-1.31          Super class for representing nodes in a tree
p5-Tree-Node-0.08_2            Memory-efficient tree nodes in Perl
p5-WebService-Linode-0.28      Perl Interface to the Linode.com API
p5-XML-Node-0.11_1             Perl5 module to extend and simplify XML::Parser
p5-XML-NodeFilter-0.01_1       XML::NodeFilter is an object that know how to "filter out" nodes
py27-certbot-dns-linode-0.27.1 Linode DNS Authenticator plugin for Certbot
py36-certbot-dns-linode-0.27.1 Linode DNS Authenticator plugin for Certbot
xnodecor-0.1_2                 Utility to set override_redirect in XWindowAttributes to True
 npm って Node package manager だったのね。  改めて npm で検索

> pkg search npm
npm-6.4.1                      Node package manager
npm-node6-6.4.1                Node package manager
npm-node8-6.4.1                Node package manager

3. npm をインストールしてみる

 npm をインストールしたら、Node.js はインストールされそうなので、ports でインストールしてみます。

cd /usr/ports/www/npm
make config
 Node にもバージョンによる系列があるようです。  新しいのにしておこうかと思うので、最上位を選択しました。
/usr/ports/www/npm - config 画面


cd /usr/ports/www/npm
make
make install

4. データベース作成

 npm インストール後に再度、データベースを作成してみます。

> cd プロジェクトのパス
> rake db:create
Created database 'project_development'
Created database 'project_test'
 ん~なんかできたみたい。