2016-10-19 63 views
2

当我运行rake db:migrate我得到以下错误:导轨 - 迁移错误 - PG :: InvalidSchemaName:ERROR:

ActiveRecord::StatementInvalid: PG::InvalidSchemaName: ERROR: no schema has been selected to create in 
: CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 

PG::InvalidSchemaName: ERROR: no schema has been selected to create in 

Tasks: TOP => db:migrate 
(See full trace by running 
ActiveRecord::StatementInvalid: PG::InvalidSchemaName: ERROR: no schema has been selected to create in 
: CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 

PG::InvalidSchemaName: ERROR: no schema has been selected to create in 

Tasks: TOP => db:migrate 
(See full trace by running task with --trace) task with --trace) 

我不知道如何解决它,并欢迎任何想法。

我运行轨道4

此错误出现,因为我原来使用MySQL数据库(工作得很好),但随后切换到pgSQL里,以便轻松上传到Heroku的。现在它既不在本地主机上工作,也不在heroku上工作。

+2

这可能会帮助您http://dba.stackexchange.com/questions/106057/error-no-schema-has-been-selected-to-create-in – user100693

+2

也检查此解决方案http://stackoverflow.com/a/14286370/4318953 – user100693

+0

我在测试环境中升级gitlab时遇到了问题。以上答案基本正确。对于PG数据库来说,总是一个很好的策略来阻止“公共”模式的权限,以防止任何人使用它们,这就是我所做的。但后来我没有正确恢复它们,所以gitlab用户可以使用它们。一旦我转移了模式的所有权(通过计算器链接),它就起作用了。 – Otheus

回答

0

当搜索路径中提到的架构不存在时,会发生此错误。您可能在数据库配置中配置了模式搜索路径。您可以从配置中删除架构搜索路径。如果您想保留模式搜索路径,请首先创建模式。