我正试图为我的rails应用程序在postgres数据库上运行rake:db迁移。DRAB(DB已经存在,我正在修复一个需要重新创建DB的bug)运行良好的RAKE:DB CREATE运行良好,但是当我运行RAKE:DB迁移时,我得到以下错误
错误--:PG::InvalidSchemaName:错误:未选择要在其中创建的架构。
我的database.yml文件看起来很好(它正在工作,所以我不确定发生了什么?)

development:
adapter: postgressql
encoding: utf8
username: [myusername]
password: [mypassword]
host: [myhost]
port: 5432
database: myapp_dev
schema_search_path: "myapp_dev"
pool: 5
timeout: 5000

知道怎么回事吗?

最佳答案

Rails不会自动创建模式AFAIK,如果您坚持使用公共模式,那么这个事实可以被忽略,并且一切正常。
要使用不同的架构,您必须包含迁移,这样的原始SQL可以:

class CreateMyAppSchema < ActiveRecord::Migration
  def up
    execute "CREATE SCHEMA myapp_dev;"
  end

  def down
    execute "DROP SCHEMA myapp_dev;"
  end
end

除了存在的模式搜索路径中的架构之外,用户还需要在MyAppDaveDeschema上使用使用权限。
GRANT USAGE on schema myapp_dev to the_user;

关于postgresql - 耙db:migrate-PG::InvalidSchamaName错误:尚未选择要在其中创建的架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47313419/

10-11 21:32