首页 > 解决方案 > ActiveRecord::ConnectionAdapters::OracleEnhancedConnectionException "DESC 表名,它存在吗?" 为测试设置运行迁移时出错

问题描述

我正在尝试在测试环境中设置数据库。但我无法迁移数据库

我在网上看了几个小时。尽管这是一个常见问题,但提供的解决方案都不适合我。发布问题的最常见原因是可能在 database.yml 文件中发布了错误的凭据。我也检查过。我的 databse.yml 是正确的。

为此,我执行了耙子

'rake db:迁移 RAILS_ENV=test'

在执行上述命令时,它显示错误为:

rake aborted!
ActiveRecord::ConnectionAdapters::OracleEnhancedConnectionException: "DESC articles" failed; does it exist?
/usr/local/rvm/gems/ruby-2.4.1/gems/activerecord-oracle_enhanced-adapter-1.7.8/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb:231:in `rescue in describe'

Caused by:
OCIError: ORA-04043: object articles does not exist
metadata.c:175:in oci8lib_240.so
/usr/local/rvm/gems/ruby-2.4.1/gems/ruby-oci8-2.2.5/lib/oci8/metadata.rb:2053:in `block in describe_table'
/usr/local/rvm/gems/ruby-2.4.1/gems/ruby-oci8-2.2.5/lib/oci8/metadata.rb:2052:in `times'
/usr/local/rvm/gems/ruby-2.4.1/gems/ruby-oci8-2.2.5/lib/oci8/metadata.rb:2052:in `describe_table'

请帮忙。

提前致谢。

标签: ruby-on-railsoracleactiverecordrspec

解决方案


您是否正在tenants使用不同的数据库处理多个并使用establish_connection方法切换它们?

也许从主数据库到子客户端数据库,如果您授予对任何表的访问权限,它会起作用,但如果您错过,那么它可能会出现这种错误。(我也经历过)

您需要检查其中必须返回true rails cActiveRecord::Base.connection.tables.includes? 'articles'


推荐阅读