ROR [Note.5 ]建立資料庫Model

18 1月, 2016

ROR [Note.5 ]建立資料庫Model






(1)產生一個model
$rails g model event name:string des:text is_public:boolean capacity:interge
令用上述指令產生model「event」,屬性有name,des,is_public,capacity


使用rails model 指令,基本上會產生出二個檔案:
app/model/event.rb           一個ActiveRecord (資料驗證用)
db/migrate/時間搓記.rb   一個migration (資料庫的定義檔)




(2)執行migrate底下的「資料庫定義檔」,正式建立資料庫

$bin/ rake db:migrate
雖然在db/migrate底下有了定義檔(mirgration),但此時資料庫還沒被建立。
基本上所有產出的資料庫定義檔都會放在db/migrate底下,
執行rake db:migrate後,會將所有沒有執行過的定義檔都執行



(3)資料庫建立完畢
建立完的資料庫會再db資料夾下方產生一個db檔「development.sqlite3」
這樣也就完成資料庫的建置了。
而也會確實的產生出了「events」這張資料表



如果往後需要增減欄位
基於資料庫維護的關係,還是建議用rails的定義檔來做。

rails強大的地方就在。
可以單獨建立一個「migration」的檔案來修正之前的資料庫定義檔


如下:
*建立一個migration
$rails g migration add_status_to_events

為原本資料表events 增加一個欄位status,類型是string
輸入 add_colum :events, :status, :string



然後一樣執行 rake db:migration ,讓它執行。
之後events這張資料表就會確實的新增一個欄位。



不得不說。
Rails的DB Migration的確真的很強大也很易用。
而且目前看來,後續維護上,也能很清楚的看出修改的紀錄與流程。






ps.
綜合以上建立完資料表events後,我們可以透過sql的介面去看

資料庫會有一張schema_migrations的資料表,
這是Rails用來記錄,那些migrations已經被執行過了,所以被執行過的migtation就不會再被執行。

如下,這就是那些時間搓記的migration




張貼留言