【发布时间】:2021-07-24 02:33:04
【问题描述】:
表的 db 架构之一指定其在列上的分区。 由于在测试开始之前加载了固定装置,因此 INSERT 语句将失败,因为分区表不存在。 我试过了
class ActiveSupport::TestCase
self.use_transactional_tests = false
fixtures :fixture_file
setup :setup
def setup
ActiveRecord::Base.connection.execute("CREATE TABLE table_1 PARTITION OF table ..")
end
这似乎失败了,因为在调用设置之前加载了固定装置。 有没有办法在加载夹具之前调用设置?
【问题讨论】:
-
所以您希望您的测试数据库结构不同于您的开发/生产数据库结构?
-
@Lam Pham 不,我的问题是,如何运行创建分区表的设置方法,然后为测试数据库执行加载夹具?现在,尽管在测试类中有一个 setup 方法,但是在创建分区表之前就已经加载了fixture。
-
对不起,我还是不明白你的意思,为什么你需要创建
partition tables?您是否关心性能(在测试中?)或其他什么? -
@LamPhan 当我运行一些测试时,没有插入固定装置,因为表抛出“没有为行找到关系分区”错误。所以我必须在安装过程中创建分区表,然后加载固定装置以克服错误。在拆卸过程中,我只是放下桌子。您如何看待这种方法?