Skip to content

Instantly share code, notes, and snippets.

@terryjray
Created August 8, 2012 15:55
Show Gist options
  • Select an option

  • Save terryjray/3296171 to your computer and use it in GitHub Desktop.

Select an option

Save terryjray/3296171 to your computer and use it in GitHub Desktop.
Enabling hstore for new postgresql 9.1 and rails 3 install on ubuntu 12.04
RAILS_ENV=production rake db:setup
# produces the error below.....hmmm.....it's a no-worky
psql:/yourprojectpath/yourproject/db/structure.sql:29: ERROR: could not open extension control file "/usr/share/postgresql/9.1/extension/hstore.control": No such file or directory
# hstore postgresql extension needs to be installed, so....
sudo apt-get install postgresql-contrib
# now your extension should be available to enable so log in with psql
psql -d yourproject_production -U yourdbuser -W
# in the psql shell
CREATE EXTENSION hstore;
\q
# now you're golden, may need to clean up and re-run
RAILS_ENV=production rake db:drop
RAILS_ENV=production rake db:setup
@Hengjie
Copy link
Copy Markdown

Hengjie commented Jan 27, 2013

Works fine here on Ubuntu 12.10

@taboularasa
Copy link
Copy Markdown

I was having the same problem, Ubuntu 12.10 32 bit, rails 3, postgresql 9.1
confirming that this fix worked for me
thanks

@giedriusr
Copy link
Copy Markdown

hm, I have issues with permissions.

# psql -d discourse_development -U root -W
Password for user root: 
psql (9.1.5, server 9.1.7)
Type "help" for help.

discourse_development=> CREATE EXTENSION hstore;
ERROR:  permission denied to create extension "hstore"
HINT:  Must be superuser to create this extension.

@giedriusr
Copy link
Copy Markdown

Everything worked. thanks

@kirantpatil
Copy link
Copy Markdown

@rtdp
Copy link
Copy Markdown

rtdp commented Apr 15, 2013

worked for me too!

@fabrizioq
Copy link
Copy Markdown

@giedriusr I'm having the same permissions problem as you had. Could you tell me how you could get around them? Thanks in advance!

@tokhi
Copy link
Copy Markdown

tokhi commented May 23, 2013

I also had permission issue, I just log in to my DB via psql and then executed the below command:

CREATE EXTENSION hstore;

problem solved.^^

@waterlink
Copy link
Copy Markdown

Like a charm.. :)

@lcezermf
Copy link
Copy Markdown

works fine for me PG 9.1 + Ubuntu 12.10, thanks!

@neilmarion
Copy link
Copy Markdown

What I did was just

postgres# ALTER ROLE <user_name> SUPERUSER;

And that's it! Run migration again.

@drob
Copy link
Copy Markdown

drob commented Aug 21, 2013

Instead of opening up a psql shell, you can just run psql -c "CREATE EXTENSION hstore"

That lets you script this whole shebang.

@harryworld
Copy link
Copy Markdown

discourse project will need this

@nicolasgarnil
Copy link
Copy Markdown

Thanks

@scifisamurai
Copy link
Copy Markdown

I had the same permission issue on postgresql 9.4 on ubuntu 12.04 LTS. Doing the following worked:

sudo su postgres -c "psql db_name -c 'CREATE EXTENSION hstore;'"
I got this from: dokku-alt/dokku-alt#66

@zinwalin
Copy link
Copy Markdown

@waterlink funny:)

@avdept
Copy link
Copy Markdown

avdept commented Feb 26, 2016

@scifisamurai, thanks, that helped me.

@bogdan8
Copy link
Copy Markdown

bogdan8 commented Sep 10, 2016

thanks

@alexventuraio
Copy link
Copy Markdown

alexventuraio commented Jan 24, 2018

I'm using Rails 5.0.2 and Postgres 9.5 on Ubuntu 16.04.3 LTS and what worked for me are the next two options:

First one:

- Install the extension with:
    sudo apt-get install postgresql-contrib
- Enable the extension in the corresponding Data Base:
    sudo su postgres -c "psql my_db_production -c 'CREATE EXTENSION hstore;'"

Second one:

- Install the extension with:
    sudo apt-get install postgresql-contrib
- Login as super user in Postgres
    sudo su - postgres
- Enter to your Data Base console:
    psql -d my_db_production -W
- In the psql shell run:
    CREATE EXTENSION hstore;
- Exit
    \q 

Now migrations run with out any error!
I hope it could be useful!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment