2017/3/21

rails db & postgresql cli 使用方法

markdown # postgresql 相關指令 查看有哪些資料庫 ``` \l ``` 連線到資料庫 ``` \c db_name ``` 查看有哪些表格 ``` \dt ``` 查看有哪些欄位 ``` \d+ table_name ``` 查看執行過的資料庫遷移 ``` select * from schema_migrations; ``` # rails db 相關指令 開啟含有 rails 環境的 irb ``` rails console ``` 連線到資料庫 ``` rails dbconsole ``` 建立資料庫,如果資料庫已經存在則不做事 ``` rails db:create ``` 刪除資料庫 ``` rails db:drop ``` 根據 db/schema.rb 檔產生對應的資料表(此動作會將資料庫內的資料清空) ``` rails db:schema:load ``` 根據資料庫狀態更新 db/schema.rb 檔 (但只要叫 db:migrate 就會自動執行這個了) ``` rails db:schema:dump ``` 執行db/seed.rb ``` rails db:seed.rb ``` ##快速功能 ###setup ``` rails db:setup ``` 等於以下指令 ``` rails db:create rails db:schema:load rails db:seed ``` ###reset ``` rails db:reset ``` 等於以下指令 ``` rails db:drop rails db:setup ``` 在這裡要注意的是setup跟reset指令不是重新執行migrate,所以如果你的schema檔是壞的,你下這兩個指令完還是壞的。 如果想要根據migration檔重新建立一個資料庫應該下的指令是 ###migrate:reset ``` rails db:migrate:reset ``` 等於以下指令 ``` rails db:drop rails db:create rails db:migrate ``` 這裡要注意的是, db:migrate:reset 指令並不會執行 db:seed 執行資料庫遷移,會把所有還沒執行過的都執行完,然後自動更新 db/schema.rb 檔 ``` rails db:migrate ``` 查看資料庫遷移結果 ``` rails db:migrate:status ``` 還原上一筆資料庫遷移 ``` rails db:rollback ``` 執行下一筆資料庫遷移 ``` rails db:forward ``` ##參考資料 [RailsGuide Migrations(資料庫遷移)](http://guides.ruby.tw/rails3/migrations.html)

沒有留言: