相关疑难解决方法(0)

PG不可定义的错误关系用户不存在

我之前看到过这个问题,但仅限于rspec.我还没有进行测试,因为它对我来说太进步了,但有一天我会尽快!:P

当我尝试使用我的应用注册/登录时出现此错误.我不知道在哪里修理它.我使用devise来创建我的用户,并使用omn​​iauth2来登录谷歌.

这是错误

ActiveRecord::StatementInvalid at /users/auth/google_oauth2/callback
PG::UndefinedTable: ERROR:  relation "users" does not exist
LINE 5:              WHERE a.attrelid = '"users"'::regclass
                                        ^
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
              FROM pg_attribute a LEFT JOIN pg_attrdef d
                ON a.attrelid = d.adrelid AND a.attnum = d.adnum
             WHERE a.attrelid = '"users"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum
Run Code Online (Sandbox Code Playgroud)

我试过rake db:migrate,但它已经创建,在架构表中存在用户.有没有人以前得到这个错误?

database.yml的

#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
# …
Run Code Online (Sandbox Code Playgroud)

database ruby-on-rails oauth-2.0 rake-task ruby-on-rails-3

88
推荐指数
8
解决办法
8万
查看次数

具有正确的Rails命名和约定的"PG :: UndefinedTable:ERROR:relation不存在"

我已经阅读了很多像这样的底池,但我看到的所有解决方案都在模型,命名和Rails惯例的命名中.

现在,当我在PostgreSQL 9.1中的生产环境中第一次运行时,我遇到了这个问题

    rake db:migrate RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)

要么

    rake db:schema:load RAILS_ENV=production 
Run Code Online (Sandbox Code Playgroud)

我可以毫无问题地创建数据库:rake db:create RAILS_ENV=production=>好的

错误是

rake aborted!
PG::UndefinedTable: ERROR:  relation "categories" does not exist
LINE 5:                WHERE a.attrelid = '"categories"'::regclass
                                          ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
                FROM pg_attribute a LEFT JOIN pg_attrdef d
                  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
               WHERE a.attrelid = '"categories"'::regclass
                 AND a.attnum > 0 AND NOT a.attisdropped
               ORDER BY a.attnum
Run Code Online (Sandbox Code Playgroud)

这些模型遵循所有Rails命名约定.所以,我不知道这个错误告诉我 什么?还有其他什么可以导致这个错误?

型号:

class Category …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails postgresql-9.1

12
推荐指数
1
解决办法
1万
查看次数

如何使用续集创建数据库

我已经阅读了所有续集的文档,但我找不到创建数据库的方法,假设我能做到这一点.

我正在运行一个rake任务:

require 'rubygems'
require 'bundler/setup'

require 'pg'
require 'sequel'

require 'yaml'
require 'erb'


namespace :db do

  task :connect do

  end


  task :create => :connect do

    puts db_config

    Sequel.connect(db_config['production']){ |db|

      db.create_table :user do
        primary_key :id

        String :name
        String :email

      end

      user = db[:user]


      user.insert(:name => 'Roland', :email => 'rolandjitsu@gmail.com')
    }

  end

  task :drop => :connect do

  end

end

def db_config
  YAML.load(ERB.new(File.read('config/database.yml')).result)
end
Run Code Online (Sandbox Code Playgroud)

但显然如果数据库不存在则不会创建数据库,所以我有点不确定我能做些什么.当我运行任务时,我得到:

PG::ConnectionBad: FATAL:  database "pulsr" does not exist
Run Code Online (Sandbox Code Playgroud)

database.yml文件:

production: &production
  adapter: postgres
  host: …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql sequel

9
推荐指数
2
解决办法
5488
查看次数

使用Rails和Postgres设置travis.ci

我在使用Rails,postgres travis工作时遇到了麻烦.测试开始运行时不断收到数据库连接错误.

Errno::ECONNREFUSED: Connection refused - connect(2)

.travis.yml

language: ruby
rvm:
  - "1.9.3"
before_script:
  - cp config/database.travis.yml config/database.yml
  - psql -c 'create database myapp_test;' -U postgres
  - bundle exec rake db:migrate --trace
  - bundle exec rake db:test:prepare --trace
script:
  - RAILS_ENV=test bundle exec rake spec

gemfile: Gemfile.ci
Run Code Online (Sandbox Code Playgroud)

database.travis.yml

test:
  adapter: postgresql
  database: myapp_test
  username: postgres
Run Code Online (Sandbox Code Playgroud)

我必须使用单独的数据库配置.

我有什么问题吗?几乎完全在http://about.travis-ci.org/docs/user/database-setup/上的文档之后,我必须将数据库配置复制到正确的位置.

postgresql ruby-on-rails travis-ci

7
推荐指数
1
解决办法
3342
查看次数