我有一个Sinatra应用程序,我使用ActiveRecord设置数据库。
由于此数据库的一个怪癖(即字符串主键),我想使用SQL模式(structure.sql
)而不是Ruby模式(schema.rb
)。我不介意这限制了我使用特定的数据库风格,我们无论如何都使用Postgres。
要在Rails中实现这一点,我会将config.active_record.schema_format = :sql
放在config/application.rb
中。我如何在Sinatra做同样的事情?
答案 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