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」にもバージョンによる系列があるようです。
新しいのにしておこうかと思うので、最上位を選択しました。