2012-02-23 40 views
3

我想运行大多数我的RSpec-S agains极快的SQLite,但能够“标签”特殊规格使用PostgreSQL(由于大量使用PG的功能)。不同的数据库的规格

这大约是我所需要的:

describe "something" do 
    it "runs against SQLite by default" do 
    # etc 
    end 

    it "but this against PG", :pg do 
    # etc 
    end 
end 

我可以在establish_connection可能破解,但要做到这一点“权利”这样的模式不共享任何两者之间的东西。

另一个问题是如何针对这2个DB运行rake任务。

注意,我不是问从应用程序使用多个数据库。我想转换DB在之间的规格。

有如此对于:)宝石

+0

你最终做了什么?我试图解决同样的问题,并希望听到这是如何结果。 – JacobEvelyn 2014-01-31 13:49:30

+0

我只是使用与生产环境相同的数据库,因此我完全不需要这个数据库。最终结果要好得多,因为我可以轻松地使用数据库特定的语法而没有任何问题。 – 2014-02-06 23:35:33

+0

是的,我们最终切换到[structure.sql](https://stackoverflow.com/questions/1560150/what-is-db-development-structure-sql-in-a-rails-project)文件,所以SQLite不再是一种选择。同意这样做会好得多,并且只需进行一些性能调整(禁用测试中的日志记录和垃圾收集等),测试就不会那么糟糕。很高兴听到有一位Postgres同志在那里! – JacobEvelyn 2014-02-07 23:52:30

回答

1

一种方法是使用此解决方案:

Rails RSpec with Multiple Databases

基本上在你的面前(:每个/:所有)连接到其他数据库并在你之后(:each /:all)恢复默认连接。

相关问题