【问题标题】:OCIError insufficient privileges while testing with rails使用 rails 测试时 OCIError 权限不足
【发布时间】:2014-02-21 11:39:06
【问题描述】:

我在 Rails 中的单元测试有问题,不知道如何解决。

如果我运行 rake test:units,我会收到以下错误:

rake aborted!
OCIError: ORA-01031: insufficient privileges: CREATE TABLE 
"SCHEMA MIGRATIONS" ("VERSION" VARCHAR(255) NOT NULL)
stmt.c:312:in oci8lib_191.so
Tasks: TOP => test:units => test:prepare => db:test:prepare => db:abort_if_pedning_migrations

我当前的 Gemfile 是

source 'http://rubygems.org'
gem 'rails', '~> 3.1.12'

gem 'ruby-oci8', '~> 2.0.4'
gem 'activerecord-oracle_enhanced-adapter', '~> 1.3.2'

gem 'ruby-plsql', '~> 0.4.3'
gem 'sqlite3'
gem 'thin'

group :assets do  
    gem 'sass-rails',   '~> 3.1.7'  
    gem 'coffee-rails', '~> 3.1.1'  
    gem 'uglifier',     '>= 1.0.3'
end
gem 'jquery-rails'

database.yml 包含以下数据:

test:
  adapter: oracle_enhanced
  database: service_name
  username: db_admin
  password: test
  host: name_of_host
  port: 1531

database.yml 中的数据同样适用于 oracle sql developer 中的数据库连接。

【问题讨论】:

  • 试试这个命令(对于 linux debian)sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion imagemagick graphicsmagick libmagickcore-dev libmagickwand-dev libreadline-dev 然后再做一次
  • 您的用户拥有insufficient privileges。也许这个链接可以帮助你dba-oracle.com/t_ora_01031.htm
  • 我的用户应该有管理员权限。但我会看看 oracle-link。而且我不喜欢它,但我目前正在使用 Windows 计算机。
  • 我已经阅读了这篇文章,但我无法访问托管数据库的服务器。我已经尝试使用 SQL Developer 进行一些更改,并且对于测试数据库,我可以创建和删除表。这还不够吗?

标签: ruby-on-rails oracle testing oracle-call-interface


【解决方案1】:

我通过添加环境变量并运行它来工作

rake test:units RAILS_ENV=test

所以实际上 rails 访问了错误的数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多