Rails 3 -> 用于用户活动跟踪的 Ahoy 插件 -> 安装错误

问题描述 投票:0回答:1

我已经按照链接中的说明安装了 Gem Ahoy -> https://github.com/ankane/ahoy

将此行添加到应用程序的 Gemfile 中:

gem 'ahoy_matey'

并在 app/assets/javascripts/application.js 中的 jQuery 之后添加 javascript 文件。

//= require jquery
//= require ahoy

MySQL 或 SQLite

将 activeuuid 添加到您的 Gemfile 中。

gem 'activeuuid', '>= 0.5.0'

然后运行:

rails generate ahoy:stores:active_record
rake db:migrate

最后一个命令产生以下错误

rake db:migrate
==  CreateVisits: migrating ===================================================
-- create_table(:visits, {:id=>false})
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::UndefinedObject: ERROR:  type "binary" does not exist
LINE 1: CREATE TABLE "visits" ("id" binary(16) PRIMARY KEY, "visitor...
ruby ruby-on-rails-3 plugins ahoy
1个回答
0
投票

这是一个老问题,已在最新版本的 Ahoy 上得到修复。该错误消息意味着 MySQL 数据库没有

binary
数据类型。要解决此错误,请尝试以下解决方案。

  1. 在Ahoy迁移文件中将

    id
    列的数据类型从
    binary
    修改为
    bytea

    create_table :visits, id: false do |t|
      t.bytea :id, limit: 16, primary_key: true
      # Other fields
    end
    
  2. 或者在

    bundle install
    之后运行此命令:

    rails generate ahoy:install
    
  3. 跳过

    activeuuid
    gem 和
    rails generate ahoy:stores:active_record
    命令,因为仅 PostgreSQL 需要
    activeuuid
    gem。运行此命令来创建访问表:

    rails generate ahoy:stores:sql
    

最后:

rails db:migrate
© www.soinside.com 2019 - 2024. All rights reserved.