3

根据https://postgres.heroku.com/blog/past/2012/4/26/heroku_postgres_development_plan/我做了“heroku addons:add heroku-postgresql:dev”。但是当我这样做时

class CreateUsers < ActiveRecord::Migration 
  def up 
    create_table :users do |t| 
      execute "CREATE EXTENSION hstore" 
      t.hstore :access 
    end 
  end 

  def down 
    drop_table :users 
      execute "DROP EXTENSION hstore" 
    end 
  end
end

然后“heroku run rake db:migrate”我得到这个错误:

PG::Error: ERROR: 在“EXTENSION” LINE 1 或附近出现语法错误:CREATE EXTENSION hstore ^ : CREATE EXTENSION hstore

4

2 回答 2

3

终于让它工作了。原来我需要按照https://devcenter.heroku.com/articles/heroku-postgres-dev-plan使用 heroku pg:promote 来“提升”数据库

于 2012-06-27T05:09:12.243 回答
2

我认为您想拆分迁移,一个添加 hstore,另一个使用它;

class SetupHStore < ActiveRecord::Migration 
  def self.up
    execute "CREATE EXTENSION hstore"
  end

  def self.down
    execute "DROP EXTENSION hstore"
  end
end

启用扩展,您的用户迁移将只添加任何字段,然后在您想要的任何列上使用 hstore。

于 2012-06-26T19:34:46.733 回答