我想要把 rails 的內建資料庫改成postgreSQL
養成每天都做一個小任務,讓自己可以學會很多酷東西!
經過了大崩潰學習程式之旅之後,我重新思考了軟體工程師他們的特質,好像個性都蠻穩定的,遇到問題的時候會思考一下自己的經驗中的解決辦法,然後再上網找答案。
這一趟學程式之旅已經快轉變成修練身心靈之旅了,接下來我要以遇到困難時的三個問題解決法幫自己訓練沈穩的學程式技能。
你想要做什麼?
你已經嘗試過什麼方法?
結果如何?
就算找不到答案,需要上網去問問題,這也是一個很好的說明,告訴別人你已經做過什麼努力,而不是只是上去當伸手牌。好的那就開始吧!
我發現我一開始想要做的事情,其實是兩件事情,所以我搜尋了很久一直失敗,我應該再拆分成:
- 如何灌 postgreSQL 並建立資料庫名字
- 如何把 rails 的 SQLite 改成 PostgreSQL
如何灌 postgreSQL 並建立資料庫名字
Step 1. $ brew install postgresql
灌好我的 postgresql
Step 2. $ brew services start postgresql
啟動 postgreSQL
Step 3. $ createdb
建立一個我自己名稱的資料庫
Step 4. $ psql
這樣就可以進入 postgresql 裡執行指令
如何把 rails 的 SQLite 改成 PostgreSQL
又分成兩種方式:
- 開新專案就直接使用 PostgreSQL
- 在原本的專案裡加入 PostgreSQL
開新專案就直接使用 PostgreSQL
$ rails new myapp --database=postgresql
在原本的專案裡加入 PostgreSQL
Step 1. 打開你的 gemfile
加入 gem 'pg' (根據你想要在開發還是上線做設定,如果統一的話就直接設在ruby後面)
記得移除原本的 SQLite
Step 2. 設定你的資料庫基本資料
路徑:config / database.ymldefault: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
development:
<<: *default
database: YOUR_PROJECT_NAME_with_pg_development
test:
<<: *default
database: YOUR_PROJECT_NAME_with_pg_test
production:
<<: *default
database: YOUR_PROJECT_NAME_with_pg_production
username: YOUR_PROJECT_NAME_with_pg
password: <%= ENV['YOUR_PROJECT_NAME_WITH_PG_DATABASE_PASSWORD'] %>
(引用 學長文章:https://www.stevenchang.tw/blog/2019/06/27/Install-PostgreSQL-in-Rails-Project )
Step 3. 建立對應專案的資料庫
- $ rails db:create
- 已經建立過一些資料表的
$ rails db:setup
Step 4. 開始使用資料庫
- $ rails db:migrate 把資料表具現化
- $ rails s 啟動伺服器
跟 PostgreSQL 相關的指令:
- 查看版本:
$ pg_ctl -V
(注意V是大寫) - 查看安裝位置:$ where pg_ctl (我的在這裡:/usr/local/bin/pg_ctl)
- 解除安裝: $ brew uninstall postgres
- 啟動跟關閉:
pg_ctl -D /usr/local/var/postgres start
pg_ctl -D /usr/local/var/postgres stop - 不想每次開機都啟動可以使用:
$ brew services start postgresql (常駐啟動)
$ brew services stop postgresql (常駐關閉)
$ brew services restart postgresq(重新啟動) - 想再建一個資料庫
$ createdb <db_name> - 想進不同資料庫查看
$ psql <db_name>