2017-03-17 66 views
0

我有一個Sinatra應用程序,我使用ActiveRecord設置了一個數據庫。如何配置Sinatra以使用structure.sql而不是schema.rb?

由於這個數據庫(即一個字符串主鍵)的怪癖之一,我想使用一個SQL模式(structure.sql),而不是一個紅寶石(schema.rb)。我不介意這限制了我使用特定的數據庫風格,我們仍然使用Postgres處理所有事情。

要在Rails中實現這一點,我會把config.active_record.schema_format = :sqlconfig/application.rb。我如何在Sinatra做同樣的事情?

+0

這不是一個Sinatra問題,它會是一個ActiveRecord問題。西納特拉只是一個無辜的旁觀者。 –

+0

你可能想看看使用Padrino。它位於Sinatra之上,但提供了許多類似Rails的生成器和幫助器。 Sinatra很棒,可以和DBM一起工作,但最終你會寫更多的代碼。 –

+0

這是一個Sinatra問題,因爲雖然很容易找到如何在Rails框架中完成它(如上所述),但它不適用於Sinatra - 或者如果它確實存在,那麼需要大量的手動設置來生成_make_它應用。 – PJSCopeland

回答

0

用Sinatra手動配置數據庫很容易。我們喜歡在MySQL中構建我們的表格,而不是使用ActiveRecord Migrations。

你必須手動創建的,而不是使用生成的數據庫模型,你會加入這一行來管理連接:

ActiveRecord::Base.establish_connection(database_settings) 

這是超級容易。我們通常從YAML文件中讀取設置。當你想編寫自動化測試時,它會變得複雜。這是我寫的關於how to set up automated tests with Sinatra, MiniTest, and ActiveRecord的博客。

+0

你並沒有設立Sinatra來做到這一點,你正在設置ActiveRecord來做到這一點。 Sinatra只是一個處理URL的DSL。 –

相關問題