Google Books API | PostgreSQL の使い方
公式リファレンス
Rubyでの書き方(ラッパー):Google Books
サンプルコード# .rb require 'googlebooks' # unless you're using Bundler books = GoogleBooks.search('The Great Gatsby') first_book = books.first first_book.authors #=> 'F. Scott Fitzgerald' first_book.isbn #=> '9781443411080' first_book.image_link(:zoom => 6) #=> 'http://bks2.books.google.com/books?id=...'
gemの書き方
gem 'googlebooks', '~> 0.0.9'
Rails PostgresSQLを使う
qiita.comrails s した時のエラーメッセージ
Action Controller: Exception caught PG::ConnectionBad ~~
- 先にpostgresqlを起動すること
以下参考サイトの引用
起動&接続
以下で実行してみる。
$ postgres
エラーになるはず。
postgres does not know where to find the server configuration file. You must specify the --config-file or -D invocation option or set the PGDATA environment variable.
コンフィグファイルを指定していないのが原因
postgresql を brew で install したときに、
/usr/local/var/postgres
が作成されている。これを環境変数にセットしておく。
~/.bashrc に以下を追加。 export PGDATA='/usr/local/var/postgres'
もちろん $ source ~/.bashrc する。
今度は起動できる
$ postgres
- その後Databaseを作成すること
# データベースを作成 rails db:create
Postgresqlの操作方法
- postgresqlのデータベースへの接続
bundle exec rails db
- データベース一覧を表示
データベース名=# \l
- ユーザ一覧を表示
データベース名=# \du
- テーブル一覧を表示
データベース名=# \d
- テーブル定義を確認する
データベース名=# \d groups
- データベースへの接続を終了
データベース名=# \q
Postgresqlのユーザへのロールの与え方
- データベースを作成し、そのデータベース用の管理ユーザを設定する
- 新規作成したユーザにロールを与えることができない
作成したユーザにSuperuser権限(ロール)を与えたい
データベース名_development=> ALTER ROLE "データベース名" WITH Superuser; ERROR: must be superuser to alter superusers 作成したユーザにスーパユーザ権限を与えないといけない
- postgresqlにrootユーザでログインするのってどうやるの?
psql -l //データベース名を確認 psql postgres // rootでpostgreSQLにログイン ALTER ROLE "データベース名" WITH Superuser;
Postgresqlにユーザを追加して、ログインする
ユーザを指定してデータベースログインする
psql -U role_sample
DBを指定して、指定ユーザで再度ログイン
$ psql -U role_sample -d postgres $ psql -U ユーザ名(ロール) -d データベース名
データベースでのログインユーザを確認する
- データベース情報を確認
データベース名=# \c データベース名
Postgresql のデータベースの削除方法
qiita.com
# DROP DATABASE データベース名 だと以下のエラー
cannot drop the currently open database
PosgreSQLで強制的にデータベースを削除する方法
psql -l //データベース名を確認 psql postgres //postgreSQLにログイン \du //ユーザーと権限を確認 ps aux | grep 消したいDB名 // 消したいDB名のプロセスID(数字)を確認 sudo kill プロセスID //以下例 sudo kill 45912 # postgresqlだとエラーだったので、以下は権限ユーザに書き換え dropdb -U postgres(もしくは消す権限のもったユーザー) 消したいDB名