如何在Rails ActiveRecord迁移中使用tsquery列创建表?

时间:2019-03-18 10:20:27

标签: ruby-on-rails ruby postgresql rails-activerecord

我想用tsquery类型的列创建一个表。我可以通过SQL查询来做到这一点:

CREATE TABLE sample_table (query tsquery);

或者我也可以像这样更改现有表:

ALTER TABLE sample_table ADD COLUMN query tsquery;

问题是,有可能具有一个带有tsquery列的表而不必执行SQL查询(换句话说,通过使用ActiveRecord API)?

我已经检查了related AR source code,其中定义了column_method并且tsquery不存在。因此,在迁移中需要这样做:

def change
  create_table :sample_table do |t|
    t.tsquery :query

    t.timestamps
  end
end

导致预期的错误:

undefined method `tsquery' for #<ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition:0x007fef205cbf40>

有没有可能的解决方法?还是我需要进行PR才能通过ActiveRecord API创建tsquery列?

0 个答案:

没有答案