如何配置Sinatra使用structure.sql而不是schema.rb?

时间:2017-03-17 00:50:48

标签: ruby activerecord sinatra database-schema

我有一个Sinatra应用程序,我使用ActiveRecord设置数据库。

由于此数据库的一个怪癖(即字符串主键),我想使用SQL模式(structure.sql)而不是Ruby模式(schema.rb)。我不介意这限制了我使用特定的数据库风格,我们无论如何都使用Postgres。

要在Rails中实现这一点,我会将config.active_record.schema_format = :sql放在config/application.rb中。我如何在Sinatra做同样的事情?

2 个答案:

答案 0 :(得分:0)

使用Sinatra手动配置数据库很容易。我们喜欢在MySQL中构建表,而不是使用ActiveRecord Migrations。

您必须手动创建数据库模型而不是使用生成器,并且您将添加此行来管理您的连接:

ActiveRecord::Base.establish_connection(database_settings)

这非常简单。我们通常从YAML文件中读取设置。当您想编写自动化测试时,它会变得复杂。这是我撰写的关于how to set up automated tests with Sinatra, MiniTest, and ActiveRecord的博客。

答案 1 :(得分:0)

由于您仍在使用活动记录,因此只需将下一行添加到配置中(我将其放在initializationError(SLLTest): No runnable methods initializationError(DLLTest): No runnable methods initializationError(RecursionTest): No runnable methods initializationError(QueueSTest): No runnable methods initializationError(StackQTest): No runnable methods 下)。

config/initializers/active_record.rb