2017-03-17 64 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。 –

相关问题