Forked from amolkhanorkar/PG::Error: ERROR: new encoding (UTF8) is incompatible
Created
October 5, 2015 14:01
-
-
Save plcosta/450a60dfb796659f4bba to your computer and use it in GitHub Desktop.
Postgres PG::Error: ERROR: new encoding (UTF8) is incompatible
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
======= Prolbem ================================================================================================================= | |
I have installed : ruby-2.0.0,postgres-9.2 , now in rails app when I execute: | |
rake db:create , command I get: | |
PG::InvalidParameterValue: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) | |
HINT: Use the same encoding as in the template database, or use template0 as template. | |
: CREATE DATABASE "my_db_name" ENCODING = 'unicode'....... | |
bin/rake:16:in `load' | |
bin/rake:16:in `<main>' | |
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"my_db", "host"=>"localhost", "pool"=>5, "username" =>"my_user", "password"=>"my_password"} | |
================================================================================================================================= | |
Solution | |
================================================================================================================================= | |
Ok, below steps resolved the problem: | |
First, we need to drop template1. Templates can’t be dropped, so we first modify it so t’s an ordinary database: | |
UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1'; | |
Now we can drop it: | |
DROP DATABASE template1; | |
Now its time to create database from template0, with a new default encoding: | |
CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE'; | |
Now modify template1 so it’s actually a template: | |
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1'; | |
Now switch to template1 and VACUUM FREEZE the template: | |
\c template1 | |
VACUUM FREEZE; | |
Problem should be resolved. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment