Skip to content

Instantly share code, notes, and snippets.

@terryjray
Created August 8, 2012 15:55
Show Gist options
  • Star 55 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
  • Save terryjray/3296171 to your computer and use it in GitHub Desktop.
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
@giedriusr
Copy link

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

Everything worked. thanks

@kirantpatil
Copy link

@rtdp
Copy link

rtdp commented Apr 15, 2013

worked for me too!

@fabrizioq
Copy link

@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

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

Like a charm.. :)

@lcezermf
Copy link

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

@neilmarion
Copy link

What I did was just

postgres# ALTER ROLE <user_name> SUPERUSER;

And that's it! Run migration again.

@drob
Copy link

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

discourse project will need this

@nicolasgarnil
Copy link

Thanks

@scifisamurai
Copy link

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

@waterlink funny:)

@avdept
Copy link

avdept commented Feb 26, 2016

@scifisamurai, thanks, that helped me.

@bogdan8
Copy link

bogdan8 commented Sep 10, 2016

thanks

@alexventuraio
Copy link

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