我正在运行Rails 5和Postgres 9.4。我有这个Postgres迁移,所以我可以快速搜索...
function IdMixin<E extends IdEntity>() {
return function <B extends BrokerType<E>>(Base: B){
class AsIdBroker extends Base {
constructor(...args: any[]) {
super(...args);
}
getEntity(id: number): E | null {
return null;
}
}
return AsIdBroker;
}
}
//Usage
class MyTaggedBroker extends IdMixin<TaggedEntity>()(TaggedBroker) {
// Same as before
}
但是,当我尝试运行单元测试(使用minitest)时,SQLLite不喜欢我的Postgres特定语法并抛出以下错误
class AddTrgmIndex < ActiveRecord::Migration[5.0]
def change
execute <<-SQL
CREATE INDEX trgm_idx_person_name ON people USING gin (name gin_trgm_ops);
SQL
end
end
有没有办法告诉SqlLite忽略迁移,还是有其他方法可以重写它,这会使两个数据库都满意?
答案 0 :(得分:1)
要回答您的问题,您可以使用以下方法检查数据库类型:
ActiveRecord::Base.connection.instance_values["config"][:adapter]
您可以使用它来有条件地运行迁移。
但我同意Taryn的评论