ruby-on-rails - Rails 应用程序中的自定义迁移失败
问题描述
在为我的 Rails 应用程序( https://github.com/mitchellhenke/sequel-pg-trgm)安装 pg-trgm gem 时,我正在尝试遵循这个超级简单的 README 指南
不幸的是,当我收到错误消息时,我一定做错了:
== 20180531122444 AddPgTrgmExtensionToDb: migrating ===========================
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
undefined method `plugin' for #<Class:0x007fdb68c1bad8>
我想这是关于plugin
我试图在我的模型中使用这个迁移,但我不知道为什么这是一个问题。
我的迁移文件:
class AddPgTrgmExtensionToDb < ActiveRecord::Migration[5.2]
def change
Card.migration do
up do
extension :pg_trgm
add_pg_trgm(:foods, :name)
end
down do
extension :pg_trgm
drop_pg_trgm(:foods, :name)
end
end
end
end
我的模型文件:
class Card < ApplicationRecord
plugin :pg_trgm
end
有任何想法吗?
解决方案
您所指的gem是Sequel而不是Rails AR,所以这不起作用。
execute
您可以使用Migrations 中的方法执行自定义 SQL 。那应该允许您创建那些 trm 索引。请注意,如果您使用execute
then 您可能希望将 Rails 记录您的模式的方式schema.rb
从structure.sql
. 有关详细信息,请参阅文档
另一个解决方案是@sparkAP评论中提到的pg_search gem
推荐阅读
- azure-cosmosdb - Cosmos db - 如何在一个结果的特定属性中组合不同的结果值
- go - Go 模板不渲染
- typescript - 我的集成测试和我的 ORM 之间的日期差异
- sql-server - Azure - 创建免费 SQL 数据库需要哪些角色
- c# - 如何使用 httpwebresponse 获取网站名称
- c# - 无法为路由不同于 xyz.com/api/webhooks/incoming/* 的 asp.net 通用 webhook 设置 URI
- git - 使用 git 命令获取自另一个分支的标签以来的提交次数
- javascript - javascript中符号数据类型的用例是什么?
- python - 使用嵌套循环 - for 循环
- android - 使用导航图时未调用android onpause