Sinatraアプリでのデータ保存先をデータベースに変えるため、ruby-pgを触ってみる。 簡単な Ruby スクリプトを書いて「書き込み」「読み取り」「編集」「削除」の一連の操作ができるようにする。
まずはTableの作成。
- Ruby側
require 'pg'
connection = PG.connect( dbname: 'postgres' )
connection.exec('CREATE TABLE sinatra_table (id INTEGER PRIMARY KEY, title TEXT NOT NULL, body TEXT)')
- PostgreSQL側
-> % ruby test.rb
-> % psql -U aksk postgres
psql (13.1)
Type "help" for help.
postgres=# \d
List of relations
Schema | Name | Type | Owner
--------+---------------+-------+-------
public | sinatra_table | table | aksk
(1 row)
postgres=#
Tableできた。が、これってpostgres
っていうデータベースが存在することが予め分かっているのでコネクションを張れているが、自作のSinatraのWebアプリケーションをcloneしてもらって他の人のパソコン上で動かすときはデータベース名どうやって決めればいいのだろうか?
PG::Connection.new(host, port, options, tty, dbname, user, password)
これで任意のホストへ接続できるので、自分が契約しているVPNへコネクション張れば誰のパソコン上でも予めわかっているデータベース名で接続できるけど、そういうことじゃないよな〜…。