# Ruby

# 関連情報
$lsx()

# 初心者向け

初めて Ruby 学ぶためのノウハウをチュートリアル形式でまとめられたサイト（無料で質が高い）
- [Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう Michael Hartl (マイケル・ハートル)](https://railstutorial.jp/)



# Rails

## PostgreSQL の DB リセットが上手くいかないときの対処法

* PostgreSQL を利用している rails プロジェクトで CI 経由で DB をリセットするコードを書いたときに、以下のようなエラーが出るときがある

```
13:25:30 ActiveRecord::StatementInvalid: PG::ObjectInUse: ERROR:  database "DB 名" is being accessed by other users
13:25:30 DETAIL:  There is 1 other session using the database.
```

これはすでに他にセッションを利用している他のユーザがいるからなので、↓のようにすべてのセッションを切ってからリセットを実行することも可能

```bash
cd /var/www/rails/(プロジェクト名)/current
export RAILS_ENV=lab

# DETAIL:  There is 1 other session using the database. 対策
# dbconsole でコネクションを切らないと、 db:reset(db:drop) 実施時にエラーになる
bundle exec rails dbconsole << EOF
SELECT pg_terminate_backend(psa.pid)
  FROM pg_stat_activity AS psa
  WHERE psa.datname = 'DB 名' 
    AND psa.pid <> pg_backend_pid();
EOF

# DB のリセットと seed を実施
bundle exec rake db:reset
bundle exec rake db:seed:lab
```

* 正直 DB をリセットするような時って、一回アプリを落としてもよいと思うので、純粋に今起動している puma なり WEBrick なりを落とした方が素直かもしれない

---

## Page Navigation

- Canonical URL: https://tips.weseek.co.jp/Tips/Ruby
- Permalink: https://tips.weseek.co.jp/5fc0b2588b05ce0048ff5ada
- Parent: [Tips](/5e44f1546857420048c06de8.md)
- Children: 2 total
  - [RSpec](/5fc0b20c8b05ce0048ff5ad0.md)
  - [Rails](/61c5303150c829d06f0ab20b.md)
- Total descendants: 3
- Siblings: 49 of 71 total (22 more not shown; see the page list API below for the full listing)
  - [Admin.js](/6505e03558d21abbb3ac8575.md)
  - [Agile](/5fb747a7a1ba4200489a4a89.md)
  - [Amazon Web Services(AWS)](/5fb748c9a1ba4200489a4acc.md)
  - [Angular](/65069da24603e7ff39a6b3d6.md)
  - [Ansible](/6505dfaa58d21abbb3ac837d.md)
  - [Apache2](/65069da24603e7ff39a6b3d5.md)
  - [Base64と仲良くなる](/5e9309f511007300489677f8.md)
  - [BuildKitによりDockerとDocker Composeで外部キャッシュを使った効率的なビルドをする方法](/5e67aea878bd2f0048680af1.md)
  - [CSS](/5fb74873a1ba4200489a4abb.md)
  - [Cocos-creator](/5fb74b6aa1ba4200489a4b2e.md)
  - [GROWI開発の知見でLINE_bot作ってみた](/5fd1d3fa0899d80049ff9a1c.md)
  - [Git](/5fb748dfa1ba4200489a4ad7.md)
  - [Grails](/65069da24603e7ff39a6b3f0.md)
  - [Hyperledger fabric](/5fcb12a2550066004845743c.md)
  - [Java](/5fb74daba1ba4200489a4ba8.md)
  - [JavaScript](/5fb74e7aa1ba4200489a4bd1.md)
  - [Jenkins](/5fb74feba1ba4200489a4c17.md)
  - [KVM](/5fbdbc17daa51800482d2227.md)
  - [Keycloak](/5fbdbffcdaa51800482d22b3.md)
  - [Kubernetes](/600522a79662740048b34bb5.md)
  - [Let's Encrypt](/65069da24603e7ff39a6b3d8.md)
  - [Linux](/5fc0ae238b05ce0048ff5a31.md)
  - [MongoDB](/5fc0af488b05ce0048ff5a6b.md)
  - [Mutagen](/6505de1458d21abbb3ac7ecd.md)
  - [Node.js](/60a62549a0d804004912d94b.md)
  - [OpenLDAP](/5fcda4862553a0004852b0dd.md)
  - [Prometheus](/5fc0b3058b05ce0048ff5af6.md)
  - [Python](/5fc0b3218b05ce0048ff5b00.md)
  - [RaspberryPiとArduinoで作る360度回転リモートワークカメラ](/5fccce3e3a4fec004844a01b.md)
  - [RaspberryPiとArduinoで作る360度回転リモートワークカメラ_ソフトウェア構築編](/5fdab8ad04dc4f00483b8d20.md)
  - [RaspberryPiとArduinoで作る360度回転リモートワークカメラ_ハードウェア製作編](/5fd7972a5fc9220048844c35.md)
  - [Redmine](/5fcd9bdd2553a0004852b012.md)
  - [Single Sign On(SSO)](/5e97bf6876311900487c3c55.md)
  - [Slack](/5fc0ae7b8b05ce0048ff5a45.md)
  - [SourceTree](/5fc0ae0c8b05ce0048ff5a2b.md)
  - [StackStorm(st2)](/65069da24603e7ff39a6b3da.md)
  - [Stripe](/5fc0aff58b05ce0048ff5a8d.md)
  - [Tomcat](/5fcda2772553a0004852b0ac.md)
  - [Turborepo](/6505dee958d21abbb3ac80cf.md)
  - [TypeScript](/5fc0a7ac8b05ce0048ff58f4.md)
  - [URLでベーシック認証を突破](/5fc0b2d98b05ce0048ff5af2.md)
  - [Unity](/5fc0ace98b05ce0048ff59f5.md)
  - [VSCode](/5e9b270093fd090048cc8acb.md)
  - [WSL2](/65069da24603e7ff39a6b403.md)
  - [Wordpress](/5fc0af488b05ce0048ff5a6d.md)
  - [XSS](/5fbe723e36ac6300497c2194.md)
  - [brigade](/600523119662740048b34be0.md)
  - [cert-manager](/65069da24603e7ff39a6b3f9.md)
  - [devcontainer](/5fd54b8eedce4f00482fa36d.md)
- Last updated: 2020-11-27T08:01:28.532Z by shinichi
- Full page listing (all children regardless of count): https://tips.weseek.co.jp/_api/v3/page-listing/children?id=5fc0b2588b05ce0048ff5ada
