002.RubyOnRails commands.

Thach
Written by Thach on
002.RubyOnRails commands.

Một số lệnh Ruby on Rails cơ bản, đi kèm Postgresql, nếu đã mất công google, thì hãy tìm ở đây.

Lệnh Rails

Tạo project Rails api với version 5.2.0 tên là super-awesome-api, dùng DB postgres

rails _5.2.0_ new super-awesome-api --api --database=postgresql

Show log trên production

rails console -e production

Tạo module Highscore

rails generate scaffold HighScore game:string score:integer

Một số câu tương tác DB (tạo DB, xóa DB, chạy migrate, thêm seed db, rollback lùi 2 bước, check trạng thái file migrate nào, chạy duy nhất một file migrate, rollback 3 bước rồi migrate lại 3 bước)

rails db:create
rails db:drop
rails db:migrate
rails db:seed
rails db:rollback STEP=2
rails db:migrate:status
rails db:migrate:up VERSION=20080906120000
rails db:migrate:redo STEP=3

Một số câu migration tạo bảng, thêm cột, thêm khóa ngoại, xóa cột, đổi tên bảng, xóa bảng

rails generate migration CreateProducts name:string part_number:string
rails generate migration AddDetailsToProducts part_number:string:index price:decimal
rails generate migration AddUserRefToProducts user:references
rails generate migration RemovePartNumberFromProducts part_number:string
rails generate migration RenameOldTableToNewTable
rails generate migration DropMerchantsTable

Lệnh Postgres

Chả biết vì lí do gì, từ lúc đi code Ruby, hễ cứ có requirement dùng DB SQL thì lại chọn ngay Postgres. Sớm thôi, mình sẽ viết một bài so sánh các hệ quản trị cơ sở dữ liệu, cả SQL lẫn NoSQL. Để xem thêm chi tiết về postgres, các bạn có thể xem thêm ở đây Install postgres on MacOs

brew update
brew install postgresql
brew services start postgresql

Access postgres shell

psql postgres
#hoặc nếu sử dụng linux
sudo -u postgres psql

Những câu lệnh với user(role)

create database mydb;
create user xxx with encrypted password 'xxx';
grant all privileges on database xxx to xxx;
#trao quyền super user cho user vừa tạo
ALTER USER xxx WITH SUPERUSER;
alter user xxx with encrypted password 'xxx';
ALTER USER xxx WITH OPTION1 OPTION2 OPTION3;
ALTER USER mytest WITH NOSUPERUSER;
ALTER USER mytest WITH SUPERUSER;
drop database IF EXISTS xxx;
drop user IF EXISTS xxx;

Những lệnh làm việc với DB

\du
\dt
\l
\q
\c dbname username
\timing
\s
\g
\copy (select * from users limit 5) to 'tmp/a.csv' csv header
\pset null str
\pset linestyle unicode
\pset border 2

Và không kém phần quan trọng là lệnh backup/restore

pg_dump -U username -W password-h 198.51.100.0 -p 5432 dbname > dbname.bak
psql dbname < dbname.bak

Tham khảo thêm cách auto backup ở đây

Comments

comments powered by Disqus