2017-05-03 52 views
0

在rails上的ruby通常使用SQLite作爲數據庫。因此rails的一個特殊屬性稱爲migration。但是當我們在rails中使用「mongodb」作爲數據庫時。我看到db目錄中沒有遷移文件夾。 當使用mongodb時,有什麼方法可以在rails中使用這個遷移屬性。在mongodb中,如何在rails上使用ruby「遷移」工具

+1

據我所知,你需要一個單獨的寶石,谷歌搜索「鐵軌mongodb遷移「可能是一個很好的開始。 –

+0

您使用的是哪種版本的導軌? – user3402754

回答

0

ActiveRecord適用於關係數據庫,因此可以找到不同的gem,如mongoid,它可以讓您執行與SQLite或PostgreSQL類似的遷移作業。

0

根據文檔here,db:migrate:僅存在依賴目的,但實際上沒有做任何事情。 但是,因爲我不確定您使用的是什麼版本的導軌,您的項目是如何設置的,並且如果您打算僅使用mongodb,我將從頭開始描述兩種可能性的過程以及所有假設(如果有明確說明的話)。

這種方法假定您要使用單獨mongodb

  1. --skip-active-record開關創建您的Rails應用程序。
  2. Gemfile
  3. 刪除sqlite3添加gem 'mongoid'Gemfile
  4. 和運行bundle
  5. 運行rails g mongoid:config
  6. 檢查application.rb文件,並確保在「類應用」你這行Mongoid.load! './config/mongoid.yml'裏面這是有時不包括在配置生成時,但需要使用Mongoid
  7. Mongoid已準備就緒。
  8. modelscaffold

Rails的發電機組已被Mongoid覆蓋。您創建的任何模型,腳手架等將創建包含Mongoid :: Document模塊的類,而不是從模型文件夾中的ApplicationRecord繼承。

例如,當您運行

rails g model person first_name last_name email_address

,如果你打開文件app/models/person.rb

你會看到

class Person 
    include Mongoid::Document 
    field :first_name, type: String 
    field :last_name, type: String 
    field :email_address, type: String 
end 
相關問題